Тестирование — это важнейшая часть разработки программного обеспечения, обеспечивающая ожидаемое поведение вашего приложения. Одной из самых популярных платформ тестирования в экосистеме 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 в свои проекты сегодня и наслаждайтесь преимуществами автоматического тестирования.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3