【发布时间】:2016-11-02 22:37:35
【问题描述】:
我有一个名为 ajax.js 的模块,它为我导出了一堆 ajax 函数。我正在尝试用 Jest 测试以下功能:
export const status = ({loginUrl='/', logoutUrl='/'}) => {
return axios.get(`/auth?login=${loginUrl}&logout=${logoutUrl}`);
};
我的测试如下所示:
jest.unmock('../ajax');
import { status } from '../ajax';
describe('ajax', () => {
let urls;
beforeEach(() => {
urls = {
loginUrl: '/',
logoutUrl: '/'
};
});
it('calls status with a login and logout url', () => {
const { loginUrl, logoutUrl } = urls;
status(urls);
expect(axios.get).toBeCalledWith(`/auth?login=${loginUrl}&logout=${logoutUrl}`);
});
});
我的测试中不断出现运行时错误:
如果我unmock axios,错误就会消失,但这对我没有帮助,因为我希望 axios 被嘲笑!
此外,由于这一行,错误似乎正在发生:
import { status } from '../ajax';
为什么 Jest 在 axios 上苦苦挣扎。为什么只是导入我的status 函数会导致此错误?我在这里做错了吗?
【问题讨论】:
-
您好,您找到解决此问题的方法了吗?
标签: unit-testing reactjs redux jestjs axios