#node.js #axios #jestjs
Вопрос:
Как мне издеваться над аксиосом, чтобы получить ответ? Этот тест завершается неудачно со следующей ошибкой:
Error: expect(jest.fn()).toHaveReturnedWith(expected) Expected: {"test": "test"} Received: {} Number of returns: 1
Это тест, который я провожу:
jest.mock('axios'); const axios = require('axios'); describe('GET /searchLocation', () =gt; { it('should return mock object', () =gt; { const mockResp = { test: 'test' }; axios.get.mockResolvedValue(mockResp); axios.get('/'); expect(axios.get).toHaveBeenCalledWith('/'); //passes expect(axios.get).toHaveReturnedWith(mockResp); //fails }); });
Комментарии:
1. Оно не вернулось
mockResp
, оно вернуло обещание этого. Но в любом случае нет особого смысла утверждать, что он возвращает, он возвращает то, на что вы его только что настроили.2. @jonrsharpe утверждение было просто моей попыткой подтвердить, что макет работал, а не предназначался для реальной проверки чего-либо. Вы правы в своем обещании, спасибо 🙂 Я гнался за отвлекающим маневром, мои неудачи в другом месте!
Ответ №1:
Я думаю, что замена этого:
axios.get.mockResolvedValue(mockResp);
С этим:
axios.get = jest.fn(() =gt; mockResp);
Это должно тебе помочь.
P.S.: этот звонок expect(axios.get)
не будет ждать, пока обещание разрешится.