我应该单独测试$ routeProvider when()设置以防止应用程序在运行时中断吗?

时间:2016-07-25 06:00:14

标签: angularjs unit-testing

$routeProvider.when('/login', {
    templateUrl: 'app/login.html',
    controller: 'LoginController as vm'
});

如果我将vm更改为(例如)avm,它会通过单元测试,但会在运行时中断运行。

enter image description here

这可以通过功能测试来捕获,但这太慢了。任何关于这种情况的想法都是受欢迎的。

如果可以,我该怎么做?

1 个答案:

答案 0 :(得分:0)

似乎是一个好主意,并且不难添加简单的测试......

describe('Testing route configuration', function() {
  var $routeProvider;

  beforeEach(function() {
    module('ngRoute', function(_$routeProvider_) {
      $routeProvider = _$routeProvider_;
      spyOn(routeProvider, 'when');
    }, 'your.module.name');
    inject(); // this "runs" the modules
  });

  it('register the correct route config', function() {
    expect($routeProvider.when).toHaveBeenCalledWith('/login', {
      templateUrl: 'app/login.html',
      controller: 'LoginController as vm'
    });
  });
});

http://plnkr.co/edit/GIpPkSPaBxm0N5wN29Hx?p=preview