angularjs - Karma : Running test with phantomjs ends-up with TypeError, 而 Chrome 成功

标签 angularjs unit-testing phantomjs webstorm karma-jasmine

我有一些 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  

illustration

最佳答案

更新到 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/

相关文章:

c# - 如何在后台启动 PhantomJS + Selenium 窗口?

javascript - angular js中单个页面中的多个应用程序

angularjs - 为什么我的 AngularJS 绑定(bind)并不总是正确更新?

javascript - 我可以对 DOM 进行单元测试吗?

r - 如果 `testthat` 测试在 `R` 中失败,则打印自定义诊断信息

javascript - 在 PhantomJS 中同步打开链接

javascript - 为什么日期选择器在 angularjs + bootstrap 中不显示红色边框?

javascript - AngularJS 无法显示身份验证状态

ios - 是否可以在 iOS 库中执行 View Controller 单元测试?

jquery-ui - 如何使用 CasperJS 移动 jquery-ui slider