【发布时间】:2019-03-17 00:43:06
【问题描述】:
我有一个导入另一个文件的文件。我想在每个测试中以不同的方式模拟另一个导入,但通过导入它的文件显示它。
我通过谷歌搜索尝试了各种模拟和导入方法,但都没有奏效。
考虑文件:
settings.js
export default { mySetting: null };
store.js
import settings from "./settings";
export default {
settings: { ...settings },
};
settingsDemo.js
import store from "./store";
it("default settings", () => {
expect(store.settings.mySetting).toBe(null);
});
it("mocked to true", () => {
expect(store.settings.mySetting).toBe(true);
});
it("mocked to false", () => {
expect(store.settings.mySetting).toBe(false);
});
我如何在 settingsDemo.js 中模拟这些文件,以在不编辑 settings.js 或 store.js 的情况下通过所有 3 个测试?
注意:
这类似于我的previous question,但是在这种情况下导入依赖项和更改值的解决方案不起作用,因为store 在这里没有引用settings 对象,而是将其克隆为初始值。
【问题讨论】:
标签: unit-testing ecmascript-6 mocking jestjs