业力:运行 使用 phantomjs 的测试以 TypeError 结束,而以 Chrome 成功
Karma: Running test with phantomjs ends-up with TypeError, while succeeds with Chrome
我有一些 angular 服务和一个简单的测试,它测试 1 方法 returns 某种类型的实例。
当我在 WebStorm 中使用 PhantomJS 运行 和 Chrome
"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
更新到 PhantomJS 2,这是解决此问题的最简单方法。 PhantomJS 1.x 基于 QtWebKit 的 4 年前的分支,当时不支持 Function.prototype.bind
。通常需要一个 shim 来让 PhantomJS 知道该函数,但这对于业力来说可能很难甚至不可能做到。
如果你想用垫片试试,this one 一直对我有用。
我有一些 angular 服务和一个简单的测试,它测试 1 方法 returns 某种类型的实例。
当我在 WebStorm 中使用 PhantomJS 运行 和 Chrome
"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
更新到 PhantomJS 2,这是解决此问题的最简单方法。 PhantomJS 1.x 基于 QtWebKit 的 4 年前的分支,当时不支持 Function.prototype.bind
。通常需要一个 shim 来让 PhantomJS 知道该函数,但这对于业力来说可能很难甚至不可能做到。
如果你想用垫片试试,this one 一直对我有用。