知道如何模拟“导入”进行测试吗? 我现在用 jest。
即:
//browser.js
export const browser = {
id: undefined
};
export const getBrowser = function() {
return browser;
};
//fetch-data.js
//code that uses the browser and I wanna test
import {getBrowser} from './../components/browser';
export const fetchData = function() {
const browser = getBrowser();
return Object.assign({dontcare:1}, browser);
};
//My test... Im using jest
import {fetchData} from './../fetch-data.js';
expect(fetchData()).toBe({......});
};
现在在测试文件中,我想模拟 browser
组件的响应......
有什么想法吗?
谢谢!
最佳答案
在其中一个帖子的帮助下最终解决了它,但使用 Sinnon.js 的方式不同
1) 我在测试中导入了浏览器组件:
import * as browserModule from './../components/browser';
2) 现在在我的测试中我将模拟我想要的方法:
sinon.stub(browserModule, 'getBrowser').returns({id: 1});
3) 从这里一切都很好,我调用了我的测试对象,它得到了正确的模拟响应:)
关于带有 Jest 的组件中的javascript模拟导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48092284/