【发布时间】:2020-02-14 13:29:51
【问题描述】:
这是我第一次测试 JS 前端,为此我选择了 mocha。
我有一门课,让我们说Market,它使用我制作的其他课程。
我最后使用import ... from ... 子句和export default Market。
所以Market 类看起来像这样:
import { math, AnotherClass, MyOtherClass } from '../index.js'
class Market {
constructor () {
// code here
}
methodToTest(input) {
// some code here ...
return output
}
}
export default Market
然后是我的 test.js
var assert = require('assert')
// import { Market } from '../public/mm/ai/Market.js'
var Market = require('../public/mm/ai/Market')
describe('Market', function() {
describe('#methodToTest()', function() {
it('should return 0 input is greater than mean + 4 * sigma', function() {
var market = new Market()
assert.equal(market.methodToTest(45), 0)
})
})
})
运行测试后出现错误:
import { math, AnotherClass, MyOtherClass } from '../index.js'
^^^^^^
SyntaxError: Cannot use import statement outside a module
还有一个错误堆栈。
问题是:如何让 mocha 使用这些导入来测试我的模块?
如您所见,我也尝试直接在 test.js 中使用 import ,但它也失败了。
但我不想重写我的整个项目以使用require,因为它现在在浏览器中工作得非常好。
【问题讨论】:
-
你的测试也需要通过 Babel 运行。
-
但在通过 Babel 翻译之前,我试图按原样测试该课程。
-
好的,所以我想我没有得到这么多的 JS 工具。
-
欢迎来到俱乐部。这还取决于您是在浏览器中还是从命令行运行测试——但最重要的是测试也需要被 babelized。
标签: javascript import mocha.js