Jasmine 是否支持 javascript with =>(箭头)
Does Jasmine support javascript with => (arrow)
Jasmine 似乎不支持=>
(如果我自己的发现是正确的)。
这是我的 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);
});
...
它失败了
JavaScript critical error at line 61, column 37 in file:///d:/github/Ui/Content/Javascript/logic.js\n\nSCRIPT1002: Syntax error
第 61 行在上面的 th3e 代码片段中显示为 //FAILS HERE
然后在 Jasmine 中抛出异常
myObj is undefined
如果我注释掉逻辑中的代码(我使用 =>
的地方),那么代码执行时不会出现这些错误
我做错了什么?不支持=>
?我在文档中找不到任何东西来证实这一点。
编辑
我没有使用 nodeJs。我使用的是原版 javascript、visual studio 2017、Jasmine 和 Chutzpah。
这很重要:
I'm using vanilla javascript, visual studio 2017, Jasmine and Chutzpah.
首先,没有原版javascript!或者至少,node 并不意味着你不使用 vanilla javascript。 vanilla javascript 的 only 意思是你不使用任何 framework/library。然而你总是需要一些东西来执行你的javascript。浏览器或其他类似 node
的东西。但是还有其他选项,例如 Nashorn、GraalVM 或 Duktape.
Jasmine 是一个库,写的是Javascript。所以 Jasmine 与支持的 Javascript 功能无关。然而 Chutzpah 有。那么 Chutzpah 是如何执行你的 javascript 的呢?那么,readme 回答了这个问题:
Chutzpah supports the QUnit, Jasmine and Mocha testing frameworks. Chutzpah uses the PhantomJS headless browser to run your tests.
这是你的答案:Phantomjs does not support arrow functions!
实际上 phantomjs is dead 应该被 Chrome Headless 之类的东西取代。 Chutzpah
上的 activity 看起来也不是很有前途。因此,我只能建议您暂时离开 Chutzpah
,并使用一些使用 Chrome Headless under the hood 的东西。
Jasmine 似乎不支持=>
(如果我自己的发现是正确的)。
这是我的 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);
});
...
它失败了
JavaScript critical error at line 61, column 37 in file:///d:/github/Ui/Content/Javascript/logic.js\n\nSCRIPT1002: Syntax error
第 61 行在上面的 th3e 代码片段中显示为 //FAILS HERE
然后在 Jasmine 中抛出异常
myObj is undefined
如果我注释掉逻辑中的代码(我使用 =>
的地方),那么代码执行时不会出现这些错误
我做错了什么?不支持=>
?我在文档中找不到任何东西来证实这一点。
编辑
我没有使用 nodeJs。我使用的是原版 javascript、visual studio 2017、Jasmine 和 Chutzpah。
这很重要:
I'm using vanilla javascript, visual studio 2017, Jasmine and Chutzpah.
首先,没有原版javascript!或者至少,node 并不意味着你不使用 vanilla javascript。 vanilla javascript 的 only 意思是你不使用任何 framework/library。然而你总是需要一些东西来执行你的javascript。浏览器或其他类似 node
的东西。但是还有其他选项,例如 Nashorn、GraalVM 或 Duktape.
Jasmine 是一个库,写的是Javascript。所以 Jasmine 与支持的 Javascript 功能无关。然而 Chutzpah 有。那么 Chutzpah 是如何执行你的 javascript 的呢?那么,readme 回答了这个问题:
Chutzpah supports the QUnit, Jasmine and Mocha testing frameworks. Chutzpah uses the PhantomJS headless browser to run your tests.
这是你的答案:Phantomjs does not support arrow functions!
实际上 phantomjs is dead 应该被 Chrome Headless 之类的东西取代。 Chutzpah
上的 activity 看起来也不是很有前途。因此,我只能建议您暂时离开 Chutzpah
,并使用一些使用 Chrome Headless under the hood 的东西。