我正在使用axios
0.18.0
,jest
22.4.2
,我正在尝试使用基于Axios documentation example的Axios和Jest测试一个简单的请求和Jest Async / Await documentation
// services.js
import axios from 'axios';
export const getUser = () => axios.get('https://api.github.com/users/mzabriskie');
// services.spec.js
import { getUser } from './services';
it('should return data from github user', async () => {
jasmine.DEFAULT_TIMEOUT_INTERVAL = 30000;
const result = await getUser();
console.log('RESULT -->', result);
});
传递DEFAULT_TIMEOUT_INTERVAL
后(在此示例中为30秒),测试会显示以下错误消息:
Error: Timeout - Async callback was not invoked within timeout
specified by jasmine.DEFAULT_TIMEOUT_INTERVAL
它永远不会达到console.log
声明。
知道我在这里可能缺少什么或如何调试它?
答案 0 :(得分:0)
事实证明问题是使用依赖jest-mock-axios,它似乎一旦配置它就永远不允许HTTP请求在测试中通过,即使你没有在特定测试中使用它(如在最初的问题例子中)。
因此,为了解决这个问题,所有相关的请求测试必须定义模拟才能工作(或者如果你想测试真正的API请求,则完全删除jest-mock-axios依赖项。)