Skip to main content

通过全局变量间接输入

全局变量间接输入的两个主要场景

通过全局变量间接输入,通常有两个场景。

  1. 使用 window.innerHeight 等全局变量;

  2. 使用第三方库等挂载的全局变量。

第三方库

比如现在有一个第三方库全局挂载了一个 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);
});