我有一个 AngularJs 应用程序,我在其中使用 angular-translate,我想测试功能。
我有一个如下所示的 i18n 模块:
angular.module('i18n', ['pascalprecht.translate'])
.config(['$translateProvider', function($translateProvider) {
'use strict';
$translateProvider.useStaticFilesLoader({
prefix: '/src/resources/languages/',
suffix: '.lang.json'
});
$translateProvider.preferredLanguage('sv');
}]);
我在这个模块中还有一个服务,我使用 $translate.use() 来获取和设置当前语言。
我在尝试测试时遇到了问题。我的测试文件如下所示:
beforeEach(module('i18n'));
it('test', inject(function ($injector, $translate) {
var i18nService = $injector.get('i18nService');
console.log('$translate.use(): ', $translate.use());
console.log('before set: ', i18nService.getLanguage());
i18nService.setLanguage('en');
console.log('after set: ', i18nService.getLanguage());
}));
我的输出是:
$translate.use(): undefined
before set: undefined
after set: undefined
如果我删除
$translateProvider.useStaticFilesLoader({
prefix: '/src/resources/languages/',
suffix: '.lang.json'
});
从我的模块,输出是
$translate.use(): sv
before set: sv
after set: en
我尝试在这些问题中使用 $httpBackend :
如何使用 App Config 中初始化的 Angular Translate 测试控制器?
但它没有用.. 我没有得到任何像这些问题一样的意外请求错误。
有人可以帮我吗?
谢谢!