Node.js 请检查设置是否为真

Node.js 请检查设置是否为真,node.js,jestjs,electron,Node.js,Jestjs,Electron,我想做一个简单的jest测试,检查电子应用程序是否启用了devTools。我在main.js中有这个函数: function createWindow () { win = new BrowserWindow({ width: 1024, height: 728, backgroundColor: '#000000', webPreferences: { nodeIntegration: true, devTools: fals

我想做一个简单的jest测试,检查电子应用程序是否启用了
devTools
。我在
main.js
中有这个函数:

function createWindow () {
  win = new BrowserWindow({
    width: 1024,
    height: 728,
    backgroundColor: '#000000',
    webPreferences: {
        nodeIntegration: true,
        devTools: false
    },
    frame: false
  });

我只是想做个测试看看devTools是否为false。jest是否可以读取该特定变量?

是的,您可以访问传递给构造函数的选项,如下所示:

win=新浏览器窗口({
网络首选项:{
无融合:没错,
devTools:对
},
});
log(win.webContents.browserWindowOptions.webPreferences.devTools);
//打印的是真的吗
请注意,只有当值实际出现在构造函数调用选项中时,才能检索该值,否则它是
未定义的


进一步注意,这是未记录的:请勿提及
webContents.browserWindowOptions
。我已经用Electron 10.1.0尝试过了。

我最近发现了,它允许您测试Electron应用程序。他们的,但我很肯定你可以用笑话来表达。我不需要再检查我的Electron应用程序中是否有devTools,但我在这里为任何想做类似事情的人发帖。

谢谢!console.log可以工作,但是我在设置
main.test.js
时有点困惑。我只是从笑话开始,下面是我的建议。代码中有几个小问题
createwindow
需要是
createwindow
并再次检查
expect
语法,它不太正确。另外,你正在检查函数的返回值,当它没有返回语句时。是的,我刚刚意识到在我复制并粘贴了所有内容之后。。。但是您是否使用了
module.exports=createWindow()
?它给出了一个
错误:当我尝试使用
npm start
运行应用程序时,无法在应用程序准备就绪之前创建BrowserWindow。我的回答仅涉及在Electron中读取BrowserWindow设置。不幸的是,我不知道如何让你的测试工作!在我看来,这似乎引出了一个更广泛、更普遍的问题:如何让Jest运行一个具有完整UI的电子应用程序。