开玩笑地测试 window.location

Testing window.location in jest

我正在尝试通过玩笑来测试 window 功能。我有一个函数,它将查询参数附加到 url 并将页面重定向到另一个页面。代码的粗略片段如下:

var url = new URL(targetUrl);
    if (typeof status !== undefined) {
      // base encode status
      url.searchParams.append("status", status);
      window.location = url.toString();

我是开玩笑的新手,我在为此模拟模拟测试时遇到了一些困难,因此你能帮我解决这个问题吗?提前致谢。

我想出了一个模拟 windows.location 的方法。我附上了一个代码片段,这将对其他试图模拟它的人有所帮助。

beforeEach(() => {
    delete window.location;
    window.location = Object.assign(new URL("https://dickssportinggoods.com"))
  });

  it('mocks windows.location function', () => {
    //call your function.
    expect(global.window.location).toBe("https://yoururl.com/?status=SUCCESS");
  });