在单元测试 Angular 1.2 中找到 Bower 依赖项,但找不到 Angular 1.5



我在将 Angular 从 1.2.28 升级到 1.5.5 时遇到问题。代码本身像一个魅力一样运行,但我的测试开始失败,并显示以下消息。

未知提供程序:存储提供程序<- 存储<- 翻译存储

我使用"a0-angular-storage":"0.0.15"作为存储提供程序,它通过以下方式提供"存储"

angular.module('angular-storage.store', ['angular-storage.internalStore']( .provider('store', function(( { ...}

[编辑:]删除了所有代码并引用了一个github存储库,我可以在其中重现该问题。https://github.com/debrutal/js-hazzle

如果我使用 1.2.28 运行测试(gulp 测试(,则 angular 能够将存储(语言所有方式都有效,因为它只是应用程序中定义的变量(注入我的测试。 1.5.5 无法这样做。在业力中,我在测试之前加载应用程序,并在应用程序之前加载 bower 依赖项。

我错过了什么?为什么会这样?

好的,我找到了原因。我的依赖项组织得不是很好。换句话说,我在应用程序依赖项本身中拥有所有外部依赖项,而不是在真正需要它的模块中。

我的应用具有依赖项: angular.module('app',['a0-angular-storage','vt.utils'])angular.module('vt.utils',[]) .对"a0-angular-storage"的依赖应该是可传递的,因为只有vt.utils使用来自a0-angular-storage的服务。模块"app"本身不直接依赖于该模块的任何服务。

当我这样做时beforeEach('vt.utils');我只是加载我想要测试的模块,而不依赖于该模块,因此 karma 无法从该模块中找到服务,因为它没有在测试中加载。

现在也许来了:我想这可能是一个原因,为什么业力无法检索加载的模块,因为从角度 1.3 开始,测试处于隔离环境中。

为此花了很多时间,有人可以向我确认这一点吗?还是我错过了别的东西?

相关内容

  • 没有找到相关文章

最新更新