使用 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

按照说明操作应该没问题