我正在使用Jasmine对Angular应用程序进行单元测试。在Chrome上一切正常,直到我开始使用PhantomJs进行控制台上的无头浏览器测试或测试输出。
2 天后,我发现 PhantomJs 不支持 lambda 表达式。单元测试没有任何问题,但它是lambda表达式和PhantomJs。
我正在使用 -
-
角度Js - 1.6.6
-
茉莉花 - 2.9.1
-
幻影 - 2.1.1
谁能帮我解决这个问题?
提前谢谢你。
PhantomJs 尚不支持箭头函数。事实上,它对ES2015的支持很少。请参阅pixiuPL(维护者(在其存储库中此问题的评论:
引入 ECMA 将需要几乎完全重写,并且 - 保持 m8ind 我现在似乎是 PJS 的唯一活跃开发人员 - 需要等到其他 - 更紧急 - 的问题得到解决。
与此同时,如果你觉得足够熟练 - 随意开始工作,但在单独的分支上。
改用函数表达式。如果要捕获this
值,请添加bind
。
例如
改变:
(foo, bar) => this.example(bar, foo);
自
(function (foo, bar) { return this.example(bar, foo); }).bind(this)
你可以使用 Babel 来转换箭头函数:
babel.config.json
{ "plugins": [
"@babel/plugin-transform-arrow-functions"
]
}
从命令行:
babel infile.js --out-dir out --config-file babel.config.json