对使用 $translatePartialLoaderProvider 的 AngularJS 应用程序进行单元测试

Unit testing an AngularJS app that uses $translatePartialLoaderProvider

我正在使用 Karma-Jasmine 为 AngularJS 网络应用程序设计单元测试。 Web 应用程序使用 angular-translate,具体来说,使用 $translatePartialLoaderProvider 模块。该应用程序本身运行良好;但是,单元测试失败并出现以下错误:

Error: [$injector:modulerr] Failed to instantiate module myApp.view1 due to:
[$injector:unpr] Unknown provider: $translatePartialLoaderProvider

我已经按照 http://angular-translate.github.io/docs/#/guide/22_unit-testing-with-angular-translate, as mentioned in Question #18876290 上的 angular-translate 的单元测试说明进行操作,但单元测试仍然失败并出现上述错误。

此处提供了说明错误的代码示例 (Plunker): http://embed.plnkr.co/8X7diP/。请注意,该应用运行良好:您可以切换视图并且视图文本按预期进行翻译。只要您在 view1mod.js 中删除 $translatePartialLoaderProvider,应用程序就会通过测试。

非常感谢您的帮助!

这是因为,即使您的 app.js 具有 translate 依赖性,您的 view1view2 模块却没有,即这将修复规范 -

angular.module('myApp.view1', ['ngRoute', 'pascalprecht.translate'])

您必须在 view1mod.jsview2mod.js 中修复此问题。