开玩笑地在ElectronJS中使用Electron-Remote测试React组件

hen*_*l28 5 unit-testing node.js reactjs jestjs electron

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

main.js

global.moment = moment;
Run Code Online (Sandbox Code Playgroud)

Component.js

const remote = window.require('electron').remote;
const moment = remote.getGlobal('moment');
Run Code Online (Sandbox Code Playgroud)

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

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

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

运行此测试将为我提供以下输出:

TypeError: window.require is not a function
Run Code Online (Sandbox Code Playgroud)

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

感谢您的帮助。

小智 0

尝试在 src/setupTest.js 中添加它

window.require = require;

参考:Jest 使用 window.require 测试 Electron/React 组件