jak widzimy tutaj http://docs.angularjs.org/tutorial/step_07,angularjs testowania jednostka trasa
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'});
}]);
Test routingu je do zrobienia z testu e2e,
it('should redirect index.html to index.html#/phones', function() {
browser().navigateTo('../../app/index.html');
expect(browser().location().url()).toBe('/phones');
});
Myślę jednak, że config w '$ routeProvider' jest wykonywane za pomocą jednej funkcji, funkcji ($ routeProvider), i powinniśmy być w stanie testować jednostkę bez angażowania przeglądarki, ponieważ myślę, że funkcja routingu nie wymaga przeglądarki DOM.
Na przykład
gdy URL jest/foo, templateUrl musi być /partials/foo.html i kontroler jest FooCtrl
gdy URL jest/bar, templateUrl musi być /partials/bar.html i kontroler jest BarCtrl
Jest to prosta funkcja IMO, a także powinna być testowana w prostym teście, jednostkowym teście.
Przeszukałem i szukałem tego testu jednostki $ routeProvider, ale bez powodzenia.
Myślę, że mogę pożyczyć kod z tego miejsca, ale nie mogłem go jeszcze uzyskać, https://github.com/angular/angular.js/blob/master/test/ng/routeSpec.js.
jest jednym z dwóch wystarczająco dobrych? – Maarten
Trzeba się zastanowić, czy dałoby to test jednostkowy, który zapewnia rzeczywistą wartość; większość konfiguracji trasy jest właśnie taka, konfiguracja, a test jednostkowy sprowadza się do "Is/some/route to/some/route?" – fwielstra
@ fwielstra, Tak, ten rodzaj testu wydaje się być [podwójnym wpisem] (http://en.wikipedia.org/wiki/Double-entry_bookkeeping_system). Z drugiej strony uważam, że większość testów czuje się w ten sposób. Z drugiej strony uważam, że podwójne wejście jest użyteczne. – zhon