某些ReactJs组件正在使用Axios NPM库触发Http帖子。使用Axios的帖子示例,我们可以:
axios.post('/user', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
window.location.assign('/nextscreen');
})
.catch(function (error) {
console.log(error);
});
发布帖子后,将触发“然后”以转到下一页。
我们正在使用Jest和Enzyme对Axios功能进行单元测试。此外,我们已经成功地单独模拟了: -使用jest-mock-axios的Axios帖子 -使用笑话模拟的window.location.assign方法。
但是,当在Axios模拟中触发“ then”时,模拟的window.location.assign方法每次都会失败。
是否可以一起模拟Axios调用和window.location.assign?
我可以传入一个包装window.location.assign方法的方法,但这是不正确的。
答案 0 :(得分:0)
不确定是否正确嘲笑了window
对象。
但是您总是可以像这样在jest测试文件中模拟它:
it('test', () => {
window.location.assign = jest.fn();
// your function that you want to test
expect(window.location.assign).toBeCalledWith('/nextscreen');
});