【问题标题】:Karma: Running test with phantomjs ends-up with TypeError, while succeeds with ChromeKarma:使用 phantomjs 运行测试以 TypeError 结束,而 Chrome 成功
【发布时间】:2015-06-12 13:49:48
【问题描述】:

我有一些角度服务和一个简单的测试,它测试 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  

【问题讨论】:

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


    【解决方案1】:

    更新到 PhantomJS 2,这是解决这个问题的最简单方法。 PhantomJS 1.x 基于 QtWebKit 的 4 年分支,当时不支持 Function.prototype.bind。通常需要一个 shim 才能让 PhantomJS 知道该功能,但这对于 karma 来说可能很难甚至不可能做到。

    如果您想尝试使用 shim,this one 一直对我有用。

    【讨论】:

      猜你喜欢
      • 2017-03-15
      • 2016-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-08
      • 1970-01-01
      • 2014-01-04
      相关资源
      最近更新 更多