Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angularjs – 如何使用App Config中初始化的Angular Translate测试控制器?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用Angular Translate( https://github.com/PascalPrecht/angular-translate)的应用程序.翻译通过浏览器在应用程序中运行良好,但当我尝试测试任何控制器时,我得到错误:意外请求:GET locale / locale-en.json.我如何对我的控制器进行单元测试,因为TRanslate在启动时会对语言文件进行GET请求?

我正在使用与Karma的yeoman角度发生器.

App.js:

angular.module('myApp',['ngCookies','ui.bootstrap','pascalprecht.translate'])
  .config(function ($routeProvider,$LOCATIOnProvider,$translateProvider) {

    $routeProvider
      .when('/',{
        templateUrl: 'views/main.html',controller: 'MainCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });

      $translateProvider.useStaticFilesLoader({
        prefix: 'locale/locale-',suffix: '.json'
      });
      $translateProvider.uses('en');
      $translateProvider.useLocalStorage();
  });

控制器测试:

describe('Controller: DocumentationCtrl',function () {

  // load the controller's module
  beforeEach(module('myApp'));

  var DocumentationCtrl,scope,$httpBACkend;

  // Initialize the controller and a mock scope
  beforeEach(inject(function ($controller,$rootScope,$injector) {
    $httpBACkend = $injector.get('$httpBACkend');
    scope = $rootScope.$new();
    DocumentationCtrl = $controller('DocumentationCtrl',{
      $scope: scope
    });
  }));

  it('should attach a list of awesomeThings to the scope',function () {
    $httpBACkend.whenGET('locale/locale-en.json').respond(200,{
      "titlE": 'My App'
    });
    expect(scope.awesomeThings.length).toBe(3);
  });

});

文档控制器只是标准生成的控制器.

您必须在配置阶段指定首选语言,而不是运行阶段.所以$translate.uses(‘us’)变成$translateProvider.preferredLanguage(‘us’).
useLocalStorage()也是如此.这些都是配置$translate服务的方法.

您还应该尝试避免使用uses()来设置认语言.请改用preferLanguage().原因是,$translate.uses()尝试尽快加载i18n文件,如果有一个cookie或类似的使用另一个语言密钥,uses()将加载两个文件,这就是我们引入preferredLanguage()的原因,是的,这应该解决问题.

大佬总结

以上是大佬教程为你收集整理的angularjs – 如何使用App Config中初始化的Angular Translate测试控制器?全部内容,希望文章能够帮你解决angularjs – 如何使用App Config中初始化的Angular Translate测试控制器?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。