Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编写支持Javascript 6模块的单元测试_Javascript_Unit Testing_Ecmascript 6 - Fatal编程技术网

如何编写支持Javascript 6模块的单元测试

如何编写支持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=

我的Javascript代码库基于新的

我有如下Javascript文件,例如:

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特技,我真的不想用

无头铬合金当然看起来很有趣,就像木偶演员一样


你试过开玩笑吗?你想测试什么?效果很好!嘿@Andry,很高兴你能成功。你能详细说明一下你做了什么使它工作吗?我从Jest开始,当我在测试ES模块时遇到问题时,我转而使用Mocha。我想我必须使用Babel等。对于Mocha,我找到了ESM库,希望使用“Mocha”lib.test.js'--require ESM',因为我看到一篇使用此解决方案的博文,但它对我不起作用。博文:@AndrewCastellano嘿,伙计,这是很久以前的事了,我删除了该项目,所以我不记得了:(顺便说一句:我目前的解决方案是:我的repo使用Rollup创建三个“捆绑包”:iLife(用于脚本标记)、es6(用于所有“子模块”的一个文件模块)和一个用于节点的.cjs(commonJS)捆绑包。我只使用后者进行测试。但另一个repo确实需要浏览器测试,所以我将查看上面的两个URL。
mocha --compilers js:babel-core/register --recursive test/*