如何编写支持Javascript 6模块的单元测试
我的Javascript代码库基于新的 我有如下Javascript文件,例如:如何编写支持Javascript 6模块的单元测试,javascript,unit-testing,ecmascript-6,Javascript,Unit Testing,Ecmascript 6,我的Javascript代码库基于新的 我有如下Javascript文件,例如: export class MyClass { constructor() { this.list = []; } add(el) { this.list.push(el); } } 作为一个模块,我将此文件导入其他Javascript文件,如下所示: import * as lists from "./myclass"; 在HTML页面中,必须使用以下语法: <script src=
export class MyClass {
constructor() {
this.list = [];
}
add(el) { this.list.push(el); }
}
作为一个模块,我将此文件导入其他Javascript文件,如下所示:
import * as lists from "./myclass";
在HTML页面中,必须使用以下语法:
<script src="myclass.js" type="module"></script>
上面是karma.conf.js
的一个示例。在Karma的特定情况下,运行程序不会将文件作为模块导入,因此页面中的注入失败
我可以使用什么单元测试框架来测试Javascript 6模块?我使用的是Mocha和Babel的组合-Babel将ES6模块传输到Mocha可以使用的代码中,因此您可以在测试文件中使用
import
要使用巴贝尔transpiler运行摩卡咖啡:
mocha --compilers js:babel-core/register --recursive test/*
我敢肯定其他框架也有类似的解决方案。您可以查看,Facebook的测试框架允许您在节点上运行测试(使用)
它在没有浏览器的情况下并行运行您的测试,因此假设速度要快得多。我不确定Jest是否真的支持模块,对吗?我想要我的测试文件。。那些有主张的人。。能够导入模块,同时导入其他模块 似乎你能用基于节点的测试框架做的最好的事情,我想可能是所有的,是我们非常糟糕的babel/webpack特技,我真的不想用 无头铬合金当然看起来很有趣,就像木偶演员一样
mocha --compilers js:babel-core/register --recursive test/*