我创建了一个axios示例。。
// api/index.js
const api = axios.create({
baseURL: '/api/',
timeout: 2500,
headers: { Accept: 'application/json' },
});
export default api;
几个模块使用它。
// api/versions.js
import api from './api';
export function getVersions() {
return api.get('/versions');
}
我试着测试像。
// Test
import { getVersions } from './api/versions';
const versions= [{ id: 1, desc: 'v1' }, { id: 2, desc: 'v2' }];
mockAdapter.onGet('/versions').reply(200, versions);
getVersions.then((resp) => { // resp is UNDEFINED?
expect(resp.data).toEqual(versions);
done();
});
为什么resp是undefined?
4条答案
按热度按时间zlwx9yxi1#
这里有两件事要尝试:
1.也许你已经在你的代码中有了这个,但是一定要设置mockAdaptor:
1.当你测试的函数使用'axios.create'来设置一个新的axios示例时,我还没有找到一种方法来让mock适配器工作。沿着下面的方法:
falq053o2#
对于任何仍在为此挣扎的人来说。
您需要确保在测试主体之外初始化
MockAdapter
。即错误
正确
egmofgnx3#
根据James M.的建议,我更新了我的api/index.js,没有使用axios.create.js。
API
olqngx594#
你不需要
axios-mock-adapter
。下面是我如何嘲笑我的axios
: