【发布时间】:2022-01-04 17:27:24
【问题描述】:
如何模拟 axios 获取响应?此测试失败并出现以下错误:
Error: expect(jest.fn()).toHaveReturnedWith(expected)
Expected: {"test": "test"}
Received: {}
Number of returns: 1
这是我正在运行的测试:
jest.mock('axios');
const axios = require('axios');
describe('GET /searchLocation', () => {
it('should return mock object', () => {
const mockResp = { test: 'test' };
axios.get.mockResolvedValue(mockResp);
axios.get('/');
expect(axios.get).toHaveBeenCalledWith('/'); //passes
expect(axios.get).toHaveReturnedWith(mockResp); //fails
});
});
【问题讨论】:
-
它没有返回
mockResp,它返回了一个promise。但是无论如何断言它返回的内容并没有多大意义,它会返回您刚刚配置的内容。 -
@jonrsharpe 断言只是我试图验证模拟是否有效,而不是对任何东西的真正测试。你的承诺是对的,谢谢 :) 我正在追逐一条红鲱鱼,我的失败在别处!