【发布时间】:2018-10-17 10:52:46
【问题描述】:
我正在使用axios0.18.0、jest22.4.2,我正在尝试使用基于Axios documentation example 和Jest Async / Await documentation 的Axios 和Jest 测试一个简单的请求
// 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 语句。
知道我在这里可能缺少什么或如何调试吗?
【问题讨论】:
-
不过,这真的不是单元测试。示例测试实际上是测试 GitHub 是否有效,而不是您的组件。您可能会查看
axios-mock-adapter,它非常有用且易于模拟您尝试测试的端点。 github.com/ctimmerm/axios-mock-adapter -
你是对的,但我通常会测试真实的请求以确保一切正常,一旦工作正常,我会添加用于拦截请求的模拟(我通常使用 nock 来实现此目的)。无论如何感谢您的建议,我会尝试的:)
标签: unit-testing jasmine axios jestjs