通过全局变量间接输入
全局变量间接输入的两个主要场景
通过全局变量间接输入,通常有两个场景。
-
使用
window.innerHeight
等全局变量; -
使用第三方库等挂载的全局变量。
第三方库
比如现在有一个第三方库全局挂载了一个 nansen
对象,对象上有一个 age
属性。
我们就可以使用 vi.stubGlobal(name, val)
来 mock 该全局变量。
it("double user age", () => {
vi.stubGlobal("nansen", {
age: 2,
});
const r = doubleUserAge();
expect(r).toBe(4);
});
全局变量
mock window.innerHeight
对于 window.innerHeight
这样的全局变量的 mock,也是同理。
it("double innerHeight", () => {
vi.stubGlobal("innerHeight", 100);
const r = doubleInnerHeight();
expect(r).toBe(200);
});