我有一个导入另一个的文件。我想在每个测试中以不同的方式模拟另一个导入,但要让它通过导入它的文件显示出来。
我曾尝试过通过google进行各种嘲弄和导入的方法,但都没有奏效。
考虑以下文件:
设置.js
export default { mySetting: null };
商店.js
import settings from "./settings";
export default {
settings: { ...settings },
};
设置Demo.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
?
注:
这和我的相似
previous question
,但是导入依赖项并更改值的解决方案在本例中不起作用,因为
store
不引用
settings
对象,而是将其克隆为初始值。