在ElectronJS中使用Electron-Remote测试React组件

时间:2017-11-30 10:50:47

标签: node.js reactjs unit-testing electron jestjs

我目前正在使用React为UI开发ElectronJS应用程序。在一些React组件中,我通过Electron远程使用nodeJS包,因此我将包从主进程导入到渲染器进程中。看起来像这样:

main.js

global.moment = moment;

Component.js

const remote = window.require('electron').remote;
const moment = remote.getGlobal('moment');

在我开始使用Jest进行单元测试之前,一切正常。

我创建了第一个以下测试用例:

it('renders without crashing', () => {
    const div = document.createElement('div');
    ReactDOM.render(<App />, div);
});

运行此测试会给我以下输出:

TypeError: window.require is not a function

我不知道如何解决这个问题,也许有人知道如何解决这个问题。也许有人知道如何为Electron中的React设置单元测试,允许在React组件中使用nodeJS包。

我很感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

尝试在 src/setupTest.js 中添加这个

window.require = require;

参考:Jest Testing Electron/React Component using window.require