Я новичок в тестировании, особенно в Jest.Я следую нескольким учебникам, в которых они обрабатывают асинхронный код так, как я пытаюсь.Мой код, кажется, работает, когда я делаю пользовательское обещание, которое разрешается с фиктивными данными.Но когда я пытаюсь использовать axios для извлечения из внешнего API, Jest получает как неопределенный ответ.
// functions2.js
const axios = require("axios")
const fetch = () => {
axios.get("https://jsonplaceholder.typicode.com/users")
.then(res => res.data)
.catch(err => err);
}
module.exports = fetch;
// functions2.test.js
describe("async operation", ()=>{
it("should be defined", ()=>{
expect(fetch).toBeDefined()
}); // Passed
it("should fetch", async () => {
expect.assertions(1);
const data = await fetch();
expect(data).toBeTruthy();
}) // Did not pass, data is undefined
it("should fetch, using promises", () => {
expect.assertions(1);
return fetch().then(data => {
expect(data).toBeTruthy();
}) // Did not pass, got 0 assertions
})
})
В одном уроке я обнаружил, что это как-то связано с Jest, работающим через Node.JS, но я не знаю, как с этим справиться, потому что я не знаю node.js.
Кроме того, я следовал руководству Traversy Media, клонировал его репозиторий Git (https://github.com/bradtraversy/jest_testing_basics) ибыла такая же проблема (хотя на видео все работало)