«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Проверьте свое приложение JavaScript с помощью Jest

Проверьте свое приложение JavaScript с помощью Jest

Опубликовано 1 сентября 2024 г.
Просматривать:509

Test Your JavaScript App With Jest

Тестирование — это важнейшая часть разработки программного обеспечения, обеспечивающая ожидаемое поведение вашего приложения. Одной из самых популярных платформ тестирования в экосистеме JavaScript является Jest. Разработанный Facebook, Jest известен своей простотой и удобством использования, что делает его отличным выбором как для начинающих, так и для опытных разработчиков.

Начало работы с Jest

Прежде чем мы углубимся в примеры, давайте настроим Jest в вашем проекте. Если вы еще этого не сделали, вы можете установить его с помощью npm:

npm install --save-dev jest

Затем добавьте тестовый скрипт в свой package.json:

"scripts": {
  "test": "jest"
}

Теперь вы готовы написать несколько тестов!
Давайте создадим простую функцию для тестирования. Создайте файл с именем math.js:

// math.js
function add(a, b) {
  return a   b;
}
module.exports = add;

Теперь давайте напишем тест для этой функции. Создайте файл с именем math.test.js:

// math.test.js
const add = require('./math');

test('adds 1   2 to equal 3', () => {
  expect(add(1, 2)).toBe(3);
});

В этом тесте мы используем функцию тестирования для определения тестового примера. Функция ожидания используется для подтверждения того, что результат add(1, 2) равен 3.

Проведение тестов

Вы можете запустить тесты, выполнив в терминале следующую команду:

npm test

Вы должны увидеть выходные данные, указывающие, что ваш тест пройден.

Тестирование асинхронного кода

Jest также поддерживает тестирование асинхронного кода. Давайте изменим наш файл math.js, включив в него асинхронную функцию:

// math.js
function fetchData() {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve('peanut butter');
    }, 1000);
  });
}

module.exports = { add, fetchData };

Теперь давайте напишем тест для fetchData:

// math.test.js
const { add, fetchData } = require('./math');

test('adds 1   2 to equal 3', () => {
  expect(add(1, 2)).toBe(3);
});

test('fetches data', async () => {
  const data = await fetchData();
  expect(data).toBe('peanut butter');
});

В этом тесте мы помечаем тестовую функцию как асинхронную и используем await, чтобы дождаться выполнения обещания.

Издевательские функции

Jest предоставляет мощные возможности для насмешек. Допустим, у вас есть функция, которая выполняет вызов API. Вы можете имитировать эту функцию, чтобы контролировать ее поведение во время тестов.
Вот пример:

// api.js
const axios = require('axios');

async function getUser() {
  const response = await axios.get('https://api.example.com/user');
  return response.data;
}

module.exports = getUser;

Вы можете имитировать аксиомы в своем тесте:

// api.test.js
const axios = require('axios');
const getUser = require('./api');

jest.mock('axios');

test('fetches user data', async () => {
  const user = { name: 'John Doe' };
  axios.get.mockResolvedValue({ data: user });

  const result = await getUser();
  expect(result).toEqual(user);
});

В этом тесте мы имитируем метод axios.get, возвращающий предопределенный ответ, что позволяет нам протестировать getUser без фактического вызова API.

Jest — это мощная среда тестирования, которая позволяет легко писать и запускать тесты для ваших приложений JavaScript. Благодаря простому синтаксису, поддержке асинхронного кода и встроенным возможностям макетирования Jest поможет вам обеспечить надежность и удобство обслуживания вашего кода. Начните интегрировать Jest в свои проекты сегодня и наслаждайтесь преимуществами автоматического тестирования.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/jospin6/test-your-javascript-app-with-jest-314c?1. Если обнаружено какое-либо нарушение прав, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3