gpt4 book ai didi

angularjs - 在 Angular 1.5 中将模块注入(inject) karma 测试

转载 作者:行者123 更新时间:2023-12-01 02:01:25 25 4
gpt4 key购买 nike

我正在尝试将我的 Angular 应用程序从 1.3.x 升级到 1.5.1。当我使用 Angular 1.3.x 版本时,我有一套测试在 Karma + PhantomJS 上运行良好,但是一旦我升级了所有测试都失败了。看来我之前将模块注入(inject)单元测试的方式不再有效。

这在 1.5 中失败:

'use strict'
App = null

fdescribe 'App Model', ->
beforeEach module('MyAngularApp')

beforeEach inject ($injector)->
App = $injector.get('App')

it 'should exist', ->
console.log 'App:', App
expect(App).toBeDefined()

我也尝试过注入(inject)以下内容
 beforeEach inject ($injector, _App_)->
App = _App_

但我的 App 模型仍然没有被注入(inject)。

我一直在研究 AngularJS 1.5.1 的文档,但我没有看到我需要对注入(inject)器进行任何更改。

在 Angular 1.5.x 中,如何正确地将模型注入(inject)到我的单元测试中?

最佳答案

好的,看起来问题实际上是升级导致了 angular-mocks 的第二个副本捆绑到应用程序中。我不确定这是否来自 AngularJS、Karma 或 PhantomJS,但删除了 angular-mock.js karma.conf.js 的配置中包含的文件中的文件解决了这个问题。似乎 PhantomJS 错误日志没有提供足够的洞察力来了解实际问题是什么。

对于遇到此问题的其他人,我注意到将我正在测试的浏览器更改为 Chrome(而不是 PhantomJS 2)会导致不同的错误消息:

Error: [$injector:modulerr] Failed to instantiate module ng due to:
Error: [$injector:modulerr] Failed to instantiate module ngLocale due to:
RangeError: Maximum call stack size exceeded

这导致我在这里找到解决方案: https://github.com/angular/angular.js/issues/11303

关于angularjs - 在 Angular 1.5 中将模块注入(inject) karma 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36066714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com