Jasmine 由于 ES6 语法而未加载模块

Jasmine not loading module because of ES6 syntax?

本文关键字:加载 模块 语法 由于 ES6 Jasmine      更新时间:2023-09-26

我有一个 Angular 模块,我使用了一些 ES6 语法(=>函数和计算的键名)。

事实证明,Jasmine 拒绝加载模块,我无法对其进行测试。我完全确定 ES6 语法是原因,因为一旦我将代码更改为 ES3 语法,Jasmine 就会加载我的模块并且我能够对其进行测试。

为什么会这样,有没有办法告诉 Jasmine 加载我的 ES6 代码?

你可以使用 babel 来转译你的 es6,这里有一个链接,告诉你如何在你的茉莉花 conf 中设置它。

https://babeljs.io/docs/setup/#jasmine

Jasmine致力于支持浏览器和Node;他们针对稳定的浏览器版本运行测试。在主流浏览器完全支持 ES6 之前,我认为 Jasmine 将无法加载您的 ES6 代码。来自贡献指南:

如何编写新的茉莉花代码

或者,如何发出成功的拉取请求

  • 请勿更改公共接口。很多项目都依赖于茉莉花,如果你不小心,你会破坏它们
  • 与环境无关 - 服务器端开发人员与浏览器开发人员一样重要
  • 与浏览器无关 - 如果您必须依赖特定于浏览器的功能,请以优雅降级的方式编写它