Я хочу написать тест для асинхронной функции, которая извлекает данные из внешнего API.
Документация Jest говорит мне вернуть обещание для тестового примера, например:
test('the data is peanut butter', () => {
return fetchData().then(data => {
expect(data).toBe('peanut butter')
})
})
Моя проблема с этим подходом состоит в том, что он делает отдельный вызов fetchData
для каждого теста. Но нет никакой гарантии, что два вызова API вернут одни и те же данные, поэтому каждый тестовый пример может выполняться для другого набора данных.
Я хотел бы сделать вызов fetchData
один раз, а затем выполнить все моитестирует те же данные ответа - что-то вроде этого:
describe('fetchData works as expected', () => {
fetchData().then(data => {
// test1
test('the data is peanut butter', () => {
expect(data).toBe('peanut butter')
})
// test2
test('the data is peanut butter', () => {
expect(data).toBe('peanut butter')
})
})
})
Как мне это сделать?