我有一些 angular.service 和一个简单的测试,它测试 1 个方法返回某种类型的实例。
当我使用 PhantomJS 和 Chrome 在 WebStorm 中运行它时
“浏览器”:[“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
最佳答案
更新到 PhantomJS 2,这是解决此问题的最简单方法。 PhantomJS 1.x 基于 4 年前的 QtWebKit 分支,当时不支持 Function.prototype.bind
。通常需要一个垫片才能使 PhantomJS 知道该函数,但这对于 karma 来说可能很难甚至不可能做到。
如果您想尝试使用垫片,this one一直对我有用。
关于angularjs - Karma : Running test with phantomjs ends-up with TypeError, 而 Chrome 成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29500506/