如何在Rewire.js中使用Jest?

时间:2018-10-19 08:37:21

标签: javascript unit-testing jestjs

我想对不使用导出的前端代码进行单元测试。 I'm told认为Rewire.js是这样做的方式。我也想为此使用Jest,但是如果有已知可行的替代方法,我欢迎您提出建议。

我的设置如下:

frontend.js

let dateInput = document.getElementById('date');
// Other code that I want to test

frontend.test.js

const rewire = require('rewire');
const { JSDOM } = require("jsdom");


beforeAll(() => {
    const { document } = (new JSDOM(`...`)).window;
    global.document = document;
});

test('script initializes', () => {
    let frontend = rewire('../src/frontend.js');
});

不幸的是,在使用npx jest运行时,它会出错:

TypeError: Cannot read property 'getElementById' of undefined

显然,Rewire.js没有注意我定义的document全局变量。如何使它起作用,或者可以使用哪些其他工具来实现相同的目的?

0 个答案:

没有答案