【问题标题】:Getting "Class extends value undefined" when importing Electron app for unit testing using Mocha使用 Mocha 导入 Electron 应用程序进行单元测试时获取“类扩展值未定义”
【发布时间】:2018-01-26 16:47:05
【问题描述】:

我目前正在开发一个基于电子的应用程序,并且我有一个类可以在“imports.js”文件中扩展电子的 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

我已经尝试在上课前的测试中导入电子,但它没有改变任何东西,我不知道在这种情况下如何进行循环导入。 此外,当我尝试将它导入我的 main.js 文件时,它工作得很好。

我可能忽略了一些明显的东西,但我在这里迷路了。

【问题讨论】:

  • 经过进一步调查,这似乎是 Mocha 和 Electron 特有的问题

标签: javascript mocha.js electron extends


【解决方案1】:

所以看起来 Mocha 不能与 Electron 本机一起使用,这就是我遇到此错误的原因。

幸运的是,有一个来自 Npm 的包允许在 Electron 中使用 Mocha:https://www.npmjs.com/package/electron-mocha

按照说明操作应该没问题的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 2014-04-25
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多