我目前正在使用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包。
我很感谢你的帮助。
答案 0 :(得分:0)
尝试在 src/setupTest.js 中添加这个
window.require = require;
参考:Jest Testing Electron/React Component using window.require