我有一个名为的模块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
函数会导致此错误?我在这里做错了吗?