我正在尝试测试一个根据 window 对象中存在的值返回值的类。
window.test = 123;
我想将 window 对象的 test 属性模拟为 123 值以便能够正确测试。
我试过Object.defineProperty,使用 global 代替,但似乎没有任何效果。似乎是一个微不足道的问题,但无法在谷歌或其他地方找到答案。请指教。
如果window存在(即 Jest 与 JSDOM 一起运行,默认情况下完成),它应该是:
beforeEach(() => {
window.test = 123;
});
afterEach(() => {
delete window.test;
});
Run Code Online (Sandbox Code Playgroud)
如果它不存在,则为:
beforeEach(() => {
global.window = { test: 123 };
});
afterEach(() => {
delete global.window;
});
Run Code Online (Sandbox Code Playgroud)
根据是否window在其他地方使用,将其备份到临时变量 inbeforeEach并在 中恢复可能会有所帮助afterEach。
| 归档时间: |
|
| 查看次数: |
3622 次 |
| 最近记录: |