Функция it является основным строительным блоком тестов
в Jasmine. Она определяет отдельный тестовый сценарий,
который проверяет конкретное поведение кода. Каждый вызов
it должен содержать описание теста и
функцию с тестовой логикой.
it('должна правильно складывать два числа', function() {
const result = add(2, 3);
expect(result).toBe(5);
});
В этом примере 'должна правильно складывать два числа' —
это текстовое описание, а функция содержит
реальные проверки через expect.
itСинтаксис функции it выглядит так:
it(description: string, testFunction: function, timeout?: number)
expect внутри itФункция it сама по себе не выполняет проверок; проверки
выполняются с помощью функции expect. Основные виды
матчеров:
===).Пример комбинирования нескольких матчеров:
it('проверяет разные типы значений', function() {
const value = getValue();
expect(value).toBeDefined();
expect(value).not.toBeNull();
expect(value).toEqual({name: 'Alice', age: 30});
});
Для тестирования асинхронного кода Jasmine предоставляет несколько подходов:
done
колбэкаit('асинхронно получает данные', function(done) {
fetchData(function(data) {
expect(data).toBe('OK');
done();
});
});
Функция done сообщает Jasmine, что асинхронная операция
завершена. Без её вызова тест будет считаться зависшим.
async/awaitit('асинхронная проверка с async/await', async function() {
const data = await fetchDataAsync();
expect(data).toBe('OK');
});
Такой подход делает код более читаемым и понятным, особенно при цепочках асинхронных операций.
Jasmine позволяет фокусироваться на конкретных тестах или пропускать их:
fit — выполняет только этот тест,
игнорируя все остальные.xit — пропускает тест, не выполняя
его.fit('только этот тест будет выполнен', function() {
expect(true).toBe(true);
});
xit('этот тест пропущен', function() {
expect(false).toBe(true);
});
Это удобно при отладке или постепенном развитии тестового покрытия.
Функция it всегда используется внутри
describe или другого блока it в сложных
случаях, что позволяет структурировать тесты и группировать их
логически:
describe('Математические операции', function() {
it('сложение чисел', function() {
expect(add(1, 2)).toBe(3);
});
it('вычитание чисел', function() {
expect(subtract(5, 2)).toBe(3);
});
});
Каждый it создаёт независимый тест, что позволяет легко
изолировать ошибки и параллельно запускать
тесты.
it должен проверять одну конкретную
вещь. Многочисленные проверки лучше разбивать на несколько
it.done или async/await.fit, но перед
финальным запуском все fit должны быть заменены на
it.Функция it является основой тестирования в
Jasmine, позволяя создавать структурированные, читаемые и
изолированные тесты. Правильное использование it
обеспечивает высокое качество и надёжность тестового покрытия.