Как издеваться над Аксиосом, чтобы получить ответ с шуткой

#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) не будет ждать, пока обещание разрешится.