【问题标题】:How to test routing with AngularJS and Karma如何使用 AngularJS 和 Karma 测试路由
【发布时间】:2014-02-12 14:34:10
【问题描述】:

我的路由看起来像:

angular.module('mean').config(['$routeProvider', '$translateProvider', '$locationProvider',
  function($routeProvider, $translateProvider, $locationProvider) {
    $routeProvider.
    when('/items', {
      templateUrl: '/views/main.html',
      controller: 'ItemsController'
    }).
    when('/items/create', {
      templateUrl: '/views/main.html',
      controller: 'ItemsController'
    }).

    when('/articles/create', {
        templateUrl: 'views/articles/create.html'
    }).
    when('/articles/:articleId/edit', {
        templateUrl: 'views/articles/edit.html'
    }).
    when('/articles/:articleId', {
        templateUrl: 'views/articles/view.html'
    }).
    when('/', {
        templateUrl: '/views/index.html'
    }).
    otherwise({
        redirectTo: '/'
    });

    $locationProvider.html5Mode(true);
    $translateProvider.useStaticFilesLoader({
      prefix: '/lang/',
      suffix: '.json'
    });

    $translateProvider.fallbackLanguage('en-US');
    $translateProvider.useCookieStorage();
    $translateProvider.preferredLanguage('en-US');
  }
]);

基本上,我想编写测试以确保每个路由都有一个模板和一个控制器。

【问题讨论】:

  • 考虑将所有这些提取到一个常量中,也就是 angular.module('mean').const。顺便说一句:)

标签: javascript angularjs unit-testing karma-runner


【解决方案1】:

您不需要测试路由是否有效,Angular 代码库已经可以,对于一些有用的测试,您可以查看以下示例:

AngularJS Test Controller Containing routeChangeSuccess

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 1970-01-01
    • 2014-09-20
    • 2013-05-15
    相关资源
    最近更新 更多