如何基于函数调用参数从jest.spyOn返回不同的对象?

时间:2018-11-27 03:23:48

标签: javascript jestjs

目前我有用于单元测试的代码

mockWindow = {
  document: {
    createElement: jest.fn().mockReturnValue(div),
    head: {
      appendChild: jest.fn(),
    },
    body: {
      appendChild: jest.fn(),

    },
    removeEventListener: jest.fn(),
  },
  addEventListener: jest.fn(),
  removeEventListener: jest.fn(),
};
jest.spyOn(window, 'open').mockReturnValue(mockWindow);

现在,我将使用另一个参数将对window.open的另一个调用添加到我的代码库中:

 window.open('', 'new_target', 'width=1000,height=500')

当第二个window.open被调用时,我希望能够返回一个不同的值。无论如何,我是否可以要求spyOn根据参数返回不同的值?

我尝试了jest.spyOn(window, 'open', '', 'new_target'),但收到了此错误Error:(47, 5) TS2554: Expected 2-3 arguments, but got 4.。第三个参数应该用于指定访问类型(即get vs set)

0 个答案:

没有答案