AngularJS Route Unit Testing

Wie wir hier in sehenhttp://docs.angularjs.org/tutorial/step_07,

angular.module('phonecat', []).
  config(['$routeProvider', function($routeProvider) {
  $routeProvider.
      when('/phones', {templateUrl: 'partials/phone-list.html',   controller: PhoneListCtrl}).
      when('/phones/:phoneId', {templateUrl: 'partials/phone-detail.html', controller: PhoneDetailCtrl}).
      otherwise({redirectTo: '/phones'});
}]);

Es wird empfohlen, den Routing-Test mit dem e2e-Test durchzuführen.

  it('should redirect index.html to index.html#/phones', function() {
    browser().navigateTo('../../app/index.html');
    expect(browser().location().url()).toBe('/phones');
  });

Ich denke jedoch, dass die '$ routeProvider'-Konfiguration mit einer einzelnen Funktion, der Funktion ($ routeProvider), durchgeführt wird, und wir sollten in der Lage sein, einen Komponententest ohne Beteiligung des Browsers durchzuführen, da meiner Meinung nach die Routing-Funktion kein Browser-DOM erfordert.

Zum Beispiel,
Wenn url / foo ist, muss templateUrl /partials/foo.html sein und controller ist FooCtrl
Wenn url / bar ist, muss templateUrl /partials/bar.html sein und controller ist BarCtrl

Es ist eine einfache Funktion IMO, und es sollte auch in einem einfachen Test, einem Unit-Test, getestet werden.

Ich habe gegoogelt und nach diesem $ routeProvider-Komponententest gesucht, aber noch kein Glück.

Ich glaube, ich kann einen Code von hier ausleihen, konnte es aber noch nicht schaffen.https://github.com/angular/angular.js/blob/master/test/ng/routeSpec.js.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage