使用 Mocha 导入 Electron 应用程序进行单元测试时获取 "Class extends value undefined"
Getting "Class extends value undefined" when importing Electron app for unit testing using Mocha
我目前正在开发一个基于 Electron 的应用程序,我有一个 class 在一个 "imports.js" 文件中扩展了 Electron 的 BrowserWindow,如下所示:
const
electron = require('electron')
app = electron.app
BrowserWindow = electron.BrowserWindow
BrowserView = electron.BrowserView
module.exports.impor = class impor extends BrowserWindow {
constructor (){
super()
}
// some stuff here
}
我想使用 mocha 对其进行测试,所以我有一个如下所示的测试文件:
const impor = require('./imports').impor
// tests go there
但是当我 运行 使用 mocha (cmd: "mocha test.js") 进行测试时,我得到了这个错误:
module.exports.impor = class impor extends BrowserWindow {
^
TypeError: Class extends value undefined is not a constructor or null
at Object.<anonymous> (/media/athoir/Storage/OrganiKnowledge/test/imports.js:2:44)
at Module._compile (module.js:660:30)
at Object.Module._extensions..js (module.js:671:10)
at Module.load (module.js:573:32)
at tryModuleLoad (module.js:513:12)
at Function.Module._load (module.js:505:3)
at Module.require (module.js:604:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/media/athoir/Storage/OrganiKnowledge/test/test_import.js:7:15)
at Module._compile (module.js:660:30)
at Object.Module._extensions..js (module.js:671:10)
at Module.load (module.js:573:32)
at tryModuleLoad (module.js:513:12)
at Function.Module._load (module.js:505:3)
at Module.require (module.js:604:17)
at require (internal/module.js:11:18)
at /usr/lib/node_modules/mocha/lib/mocha.js:231:27
at Array.forEach (<anonymous>)
at Mocha.loadFiles (/usr/lib/node_modules/mocha/lib/mocha.js:228:14)
at Mocha.run (/usr/lib/node_modules/mocha/lib/mocha.js:536:10)
at Object.<anonymous> (/usr/lib/node_modules/mocha/bin/_mocha:573:18)
at Module._compile (module.js:660:30)
at Object.Module._extensions..js (module.js:671:10)
at Module.load (module.js:573:32)
at tryModuleLoad (module.js:513:12)
at Function.Module._load (module.js:505:3)
at Function.Module.runMain (module.js:701:10)
at startup (bootstrap_node.js:193:16)
at bootstrap_node.js:617:3
我已经在 class 之前尝试在测试中导入电子,但它没有改变任何东西,我不知道在这种情况下如何进行循环导入。
另外,当我尝试将它导入我的 main.js 文件时,它工作得很好。
我可能忽略了一些明显的东西,但我在这里迷路了。
看来 Mocha 本身不能与 Electron 一起使用,这就是我出现此错误的原因。
幸运的是,Npm 有一个包允许在 Electron 中使用 Mocha:https://www.npmjs.com/package/electron-mocha
按照说明操作应该没问题
我目前正在开发一个基于 Electron 的应用程序,我有一个 class 在一个 "imports.js" 文件中扩展了 Electron 的 BrowserWindow,如下所示:
const
electron = require('electron')
app = electron.app
BrowserWindow = electron.BrowserWindow
BrowserView = electron.BrowserView
module.exports.impor = class impor extends BrowserWindow {
constructor (){
super()
}
// some stuff here
}
我想使用 mocha 对其进行测试,所以我有一个如下所示的测试文件:
const impor = require('./imports').impor
// tests go there
但是当我 运行 使用 mocha (cmd: "mocha test.js") 进行测试时,我得到了这个错误:
module.exports.impor = class impor extends BrowserWindow {
^
TypeError: Class extends value undefined is not a constructor or null
at Object.<anonymous> (/media/athoir/Storage/OrganiKnowledge/test/imports.js:2:44)
at Module._compile (module.js:660:30)
at Object.Module._extensions..js (module.js:671:10)
at Module.load (module.js:573:32)
at tryModuleLoad (module.js:513:12)
at Function.Module._load (module.js:505:3)
at Module.require (module.js:604:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/media/athoir/Storage/OrganiKnowledge/test/test_import.js:7:15)
at Module._compile (module.js:660:30)
at Object.Module._extensions..js (module.js:671:10)
at Module.load (module.js:573:32)
at tryModuleLoad (module.js:513:12)
at Function.Module._load (module.js:505:3)
at Module.require (module.js:604:17)
at require (internal/module.js:11:18)
at /usr/lib/node_modules/mocha/lib/mocha.js:231:27
at Array.forEach (<anonymous>)
at Mocha.loadFiles (/usr/lib/node_modules/mocha/lib/mocha.js:228:14)
at Mocha.run (/usr/lib/node_modules/mocha/lib/mocha.js:536:10)
at Object.<anonymous> (/usr/lib/node_modules/mocha/bin/_mocha:573:18)
at Module._compile (module.js:660:30)
at Object.Module._extensions..js (module.js:671:10)
at Module.load (module.js:573:32)
at tryModuleLoad (module.js:513:12)
at Function.Module._load (module.js:505:3)
at Function.Module.runMain (module.js:701:10)
at startup (bootstrap_node.js:193:16)
at bootstrap_node.js:617:3
我已经在 class 之前尝试在测试中导入电子,但它没有改变任何东西,我不知道在这种情况下如何进行循环导入。 另外,当我尝试将它导入我的 main.js 文件时,它工作得很好。
我可能忽略了一些明显的东西,但我在这里迷路了。
看来 Mocha 本身不能与 Electron 一起使用,这就是我出现此错误的原因。
幸运的是,Npm 有一个包允许在 Electron 中使用 Mocha:https://www.npmjs.com/package/electron-mocha
按照说明操作应该没问题