angular-translate を使用する AngularJs アプリケーションがあり、機能をテストしたいと考えています。
次のような 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 でコントローラーをテストするにはどうすればよいですか?
しかし、うまくいきませんでした..これらの質問のような予期しないリクエストエラーは発生しません。
誰でもこれで私を助けてもらえますか?
ありがとう!