茉莉花似乎不支持=>
(如果我自己的发现是正确的)。
这是我的logic.js
文件的摘录
var myObj = new function(){
this.getSomething = function(input){
_myLocalArray.forEach(item =>{
//left blank
});
};
};
我的测试是
/// <reference path="../../Ui/Content/Javascript/logic.js"/>
/// <reference path="jasmine.js" />
describe("My Tests", function () {
it("Description etc", function () {
var result = myObj.getSomething("some input"); // FAILS HERE
expect(result.length).toBe(0);
});
...
失败并
第61行中file:/// d:/github/Ui/Content/Javascript/logic.js \ n \ nSCRIPT1002中的JavaScript严重错误:语法错误
第61行显示在上面的代码段中,带有// FAILS HERE
然后在Jasmine中抛出一个异常,该异常是
myObj未定义
如果我在逻辑上注释掉了代码(我使用=>
),那么代码将执行而不会出现这些错误
我在做什么错?是否不支持=>
?我在文档中找不到任何内容可以确认这一点。
编辑
我不使用nodeJs。我正在使用香草javascript,Visual Studio 2017,Jasmine和Chutzpah。
答案 0 :(得分:3)
这很重要:
我正在使用香草javascript,Visual Studio 2017,Jasmine和Chutzpah。
首先,没有香草javascript !或至少,node并不意味着您不使用 vanilla javascript 。 香草javascript 的 only 含义是您不使用任何框架/库。但是,您总是需要执行JavaScript的某些内容。浏览器或其他类似node
的东西。但是,还有其他选项,例如 Nashorn , GraalVM 或 Duktape 。
Jasmine是用Javascript编写的库。因此,Jasmine与受支持的Javascript功能无关。但是 Chutzpah 有。那么 Chutzpah 如何执行您的JavaScript?好吧,readme回答了这个问题:
Chutzpah支持QUnit,Jasmine和Mocha测试框架。 Chutzpah使用PhantomJS无头浏览器来运行测试。
这是您的答案:Phantomjs does not support arrow functions!
实际上是phantomjs is dead,应替换为Chrome Headless之类的东西。同样,在Chutzpah
上的活动似乎前景不大。因此,我建议您暂时不使用Chutzpah
,并使用引擎盖下无铬Chromem的东西。