如何使用Intern v4导入我的类并编写单元测试。我一直遇到错误 SyntaxError:Unexpected token import
单元测试文件demo.js:
import Demo from '../../app/demo.js';
const { suite, test } = intern.getInterface('tdd');
const { assert } = intern.getPlugin('chai');
const { expect } = intern.getPlugin('chai');
Demo.js课程:
class Demo{
constructor(){
}
print(){
console.log(`hello world`);
}
}
export default {Demo};
答案 0 :(得分:3)
JS的模块系统(导入/导出)尚未被许多环境本地支持。要使用该语法,您需要使用SystemJS等模块加载器或babel-register(请参阅文档中的this page)。
Intern 4的大多数示例都假设测试是用TypeScript编写的,然后构建到CommonJS或AMD / UMD模块。
答案 1 :(得分:1)
与@ jason0x43一样,您必须使用加载程序加载ESModule进行测试。 例如,使用babel-register,在你的intern.json文件中,你需要:
"plugins": [
"node_modules/babel-register/lib/node.js"
]
但是这并没有加载你的测试文件。因此,如果您的测试文件也是ESModules,则可以将babel-plugin-transform-es2015-modules-commonjs与babel-register结合使用。
babel-register
已由intern
加载,因此只需添加.babelrc
文件:
{
"plugins": [
"transform-es2015-modules-commonjs"
]
}