2016-07-28 76 views
0

我发现了a lot of tutorials,用于通过将ES2015代码(通过Babel)转换为ES5,然后测试ES5代码来测试ES2015代码。但是是否有任何测试框架可以使用原生ES2015功能(如默认参数)来测试代码而不进行转译?我可以测试ES2015('ES6')代码而无需编译它吗?

似乎很奇怪必须安装整个转置程序设置仅用于测试覆盖率。我想知道是否有一种本地方式来对ES2015代码进行断言。

+1

有一种方法。在支持应用程序中使用的ES6功能的浏览器中进行测试。这对于ES6模块来说很难做到,因为浏览器不支持它们。请通过陈述使用的测试工具来改进问题。其中一些(例如Karma)提供了用于转译的无缝设置。 – estus

+1

“*整个转储程序设置*仅*用于测试覆盖率*” - 如果您不需要用于实际构建的转译程序,则不需要它用于测试覆盖率。无论如何,如果你需要它的构建,你将需要它。 – Bergi

回答

2

这不是测试框架的问题,而是javascript环境的问题。如果您的引擎本身支持您的测试使用的ES6功能,那么您可以本地运行框架和测试。节点6在这方面做得非常好,there's only a few things missing(最重要的是,模块)。只是不要安装翻译,它仍然会工作。

当然,还有一些尚未支持的功能,还有很多环境一般都没有ES6支持,但是所有测试框架都希望支持它们(或需要支持它们以往)。所以这就是为什么作为选项的转换器(仍然)内置于整个工具链中的原因 - 即使您现在不必再使用它了。

相关问题