Действительно борюсь с этим вызовом API в тесте TDD в мокко / чай, я пытаюсь его настроить.
В основном, beforeEach()
тест, я хочу сделать вызов API api. А затем передайте мой res
в каждую it()
функцию, чтобы я мог запускать отдельные тесты для ответа.
Моя функция beforeEach (), кажется, работает, так как я могу успешно console.log (res).
Однако при выполнении моей / 1010 * функции / теста я получаю следующую ошибку:
Ошибка: превышено время ожидания 2000 мс. Для асинхронных тестов и хуков убедитесь, что вызывается «done ()»;если вы возвращаете обещание, убедитесь, что оно разрешено.
Если я добавлю done()
в свою функцию beforeEach, это не решит проблему. Затем я получаю новую ошибку, которую, похоже, не могу устранить:
Error: Resolution method is overspecified. Specify a callback *or* return a Promise; not both.
Я теряюсь в том, как решить эту проблему. Как я могу успешно запустить мой beforeEach()
и передать res для каждой последующей it()
функции?
Вот мой код:
describe('1) Check for succcessful fetech API call', () => {
beforeEach( async (done) => {
await fetch('https://pixabay.com/api/?key=9656065-a4094594c34f9ac14c7fc4c39&q=manhattan&image_type=photo&page=1&per_page=9')
.then((res) => {
console.log(res);
return res.json();
})
done();
});
it('a) Should return an object, with an array count of 9 elements', function(res) {
console.log(res);
// expect(res).to.be.an('object');
// expect(res.hits).to.have.lengthOf(9);
})
А вот что такое console.loggingпо моему beforeEach()
:
Response {
size: 0,
timeout: 0,
[Symbol(Body internals)]:
{ body:
Gunzip {
_readableState: [ReadableState],
readable: true,
domain: null,
_events: [Object],
_eventsCount: 7,
_maxListeners: undefined,
_writableState: [WritableState],
writable: true,
allowHalfOpen: true,
_transformState: [Object],
bytesRead: 0,
_handle: [Zlib],
_hadError: false,
_writeState: [Uint32Array],
_outBuffer: <Buffer 7b 22 74 6f 74 61 6c 48 69 74 73 22 3a 35 30 30 2c 22 68 69 74 73 22 3a 5b 7b 22 6c 61 72 67 65 49 6d 61 67 65 55 52 4c 22 3a 22 68 74 74 70 73 3a 2f ... >,
_outOffset: 0,
_level: -1,
_strategy: 0,
_chunkSize: 16384,
_flushFlag: 2,
_scheduledFlushFlag: 0,
_origFlushFlag: 2,
_finishFlushFlag: 2,
_info: undefined },
disturbed: false,
error: null },
[Symbol(Response internals)]:
{ url: 'https://pixabay.com/api/?key=9656065-a4094594c34f9ac14c7fc4c39&q=manhattan&image_type=photo&page=1&per_page=9',
status: 200,
statusText: 'OK',
headers: Headers { [Symbol(map)]: [Object] },
counter: 0 } }