Karma:使用phantomjs运行测试,最终使用TypeError,同时使用Chrome成功

时间:2015-04-07 20:17:02

标签: angularjs unit-testing phantomjs webstorm karma-jasmine

我有一些角度服务和一个简单的测试,它测试1方法返回某种类型的实例。

当我使用PhantomJS和Chrome

在WebStorm中运行它时

"browsers": ["PhantomJS", "ChromeCanary"]

所有测试都以chrome传递,但在PhantomJS中会有一些测试通过,但上面提到的测试会产生类型错误。 (不是测试,而是测试中测试的代码)

    TypeError: 'undefined' is not a function (evaluating 'this._decorateParent.bind(this)')
       <... other info>

当然,我可以嘲笑一些依赖项,它会有所帮助。但我想知道这种行为的原因是什么。

angular.js v1.3.14  
karma      v0.12.32  
PhantomJS  v1.9.8  

illustration

1 个答案:

答案 0 :(得分:2)

更新到PhantomJS 2,这是解决此问题的最简单方法。 PhantomJS 1.x是基于4年前的QtWebKit分支,当时不支持Function.prototype.bind。通常需要一个垫片来使PhantomJS知道这个功能,但这对于业力来说可能很难做到。

如果你想用垫片试试,this one一直对我有效。