如何使用sinon将window.innerWidth / innerHeight存根?

时间:2018-03-22 15:27:12

标签: javascript sinon

我似乎无法弄清楚如何使用sinon来存储innerWidth和innerHeight属性。有谁知道语法是什么,或者它是否可能?

Souce代码:

describe('test', () => {
  let sandbox;

  beforeEach(() => {
    sandbox = sinon.sandbox.create();
    sandbox.stub(window, "innerWidth").get(() => 1000);
    sandbox.stub(window, "innerHeight").get(() => 1000);
  })

  afterEach(() => {
    sandbox.restore();
  });

  it('should do a thing', () => {
    console.log(window.innerWidth); // 1024
    console.log(window.innerHeight); // 768
  });
});

控制台输出:

 PASS  src/components/Tooltip/tests/index.test.js
  test
    ✓ should do a thing (2ms)

  console.log src/components/Tooltip/tests/index.test.js:58
    1024

  console.log src/components/Tooltip/tests/index.test.js:59
    768

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        0.573s, estimated 1s

1 个答案:

答案 0 :(得分:0)

我也有同样的问题。我如下解决:

window.innerWidth = 1280;

不确定这是否是最好的方法,但是可以解决我的问题。

如果您找到了其他方法,请分享。