Jasmine是否通过=>(箭头)

时间:2018-07-24 15:07:52

标签: javascript unit-testing jasmine arrow-functions

茉莉花似乎不支持=>(如果我自己的发现是正确的)。

这是我的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。

1 个答案:

答案 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的东西。