4

我有一个 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 测试控制器?

如何使用角度翻译进行单元测试

但它没有用.. 我没有得到任何像这些问题一样的意外请求错误。

有人可以帮我吗?

谢谢!

4

0 回答 0