为 Mocha/Chai 测试模拟一个 Electron 会话
Dummying an Electron session for Mocha/Chai tests
我已经基于 chentsulin 的 electron/react boilerplate 构建了一个单页应用程序,它带有以下用于测试的节点脚本:
"test": "cross-env NODE_ENV=test BABEL_DISABLE_CACHE=1 mocha --compilers js:babel-register --recursive --require ./test/setup.js test/**/*.spec.js"
样板文件附带了一些通用测试,这些测试一开始就运行可用(我自己证实了这一点)。它还附带了许多 webpack 配置以适应不同的环境。
该应用程序现在已经相当成熟了,并且正在使用 electron-json-storage 来处理本地存储。我刚回去写测试,当我 运行 test
节点脚本(带或不带 --renderer)时,我得到以下信息:
[dirpath]/node_modules/electron-json-storage/lib/utils.js:30
const app = electron.app || electron.remote.app;
^
TypeError: Cannot read property 'app' of undefined
我试过使用 webpack.IgnorePlugin 来忽略电子-json-存储,但这没有任何作用。我的猜测是 electron-json-storage 试图引用一个不存在的实例化电子会话。最简单的模拟方法是什么?
问题是我使用的是 mocha(它是 Electron-React 样板的一部分)。安装 electron-mocha 并更改 package.json 中的 test
脚本立即解决了这个问题。
我已经基于 chentsulin 的 electron/react boilerplate 构建了一个单页应用程序,它带有以下用于测试的节点脚本:
"test": "cross-env NODE_ENV=test BABEL_DISABLE_CACHE=1 mocha --compilers js:babel-register --recursive --require ./test/setup.js test/**/*.spec.js"
样板文件附带了一些通用测试,这些测试一开始就运行可用(我自己证实了这一点)。它还附带了许多 webpack 配置以适应不同的环境。
该应用程序现在已经相当成熟了,并且正在使用 electron-json-storage 来处理本地存储。我刚回去写测试,当我 运行 test
节点脚本(带或不带 --renderer)时,我得到以下信息:
[dirpath]/node_modules/electron-json-storage/lib/utils.js:30
const app = electron.app || electron.remote.app;
^
TypeError: Cannot read property 'app' of undefined
我试过使用 webpack.IgnorePlugin 来忽略电子-json-存储,但这没有任何作用。我的猜测是 electron-json-storage 试图引用一个不存在的实例化电子会话。最简单的模拟方法是什么?
问题是我使用的是 mocha(它是 Electron-React 样板的一部分)。安装 electron-mocha 并更改 package.json 中的 test
脚本立即解决了这个问题。