我正在使用Jasmine进行Angular应用程序的单元测试。 在我开始使用PhantomJs进行无头浏览器测试或在控制台上测试输出之前,Chrome上的一切工作正常。
2天后,我发现PhantomJs不支持lambda表达。 单元测试没有任何问题,但是使用lambda表达式和PhantomJs。
我正在使用 -
AngularJs - 1.6.6
Jasmine - 2.9.1
PhantomJs - 2.1.1
任何人都可以帮我吗?
提前谢谢。
答案 0 :(得分:3)
PhantomJs doesn't support arrow functions yet。事实上,它支持的ES2015很少。在他们的回购中从this issue看pixiuPL(维护者)的评论:
介绍ECMA将需要几乎完全重写并且 - 保持在m8ind中我似乎是PJS现在唯一的活跃开发者 - 需要等到其他 - 更紧急 - 问题得到解决。
与此同时,如果你觉得足够熟练 - 可以随意开始工作,但是在另一个分支上。
答案 1 :(得分:3)
请改用函数表达式。如果要捕获bind
值,请添加this
。
e.g。
变化:
(foo, bar) => this.example(bar, foo);
到
(function (foo, bar) { return this.example(bar, foo); }).bind(this)