2013-10-02 3 views
7

Hier mein Laufsatz ist, wo ich ein paar Eigenschaften auf rootScope basierend auf dem Standort Pfad festgelegt:

angular.module('xyz').run(['$rootScope', '$location', '$route', function($rootScope, $location, $route){ 
    $rootScope.brand = $location.path().split('/')[1]; 
    $rootScope.appName = $rootScope.brand.split('.')[2]; 
}); 

Hier ist das Gerät zu testen, das heißt Fehler:

beforeEach(module('App')); 

beforeEach(inject(function($controller, _$location_, $rootScope) { 
    $location = _$location_; 
    $scope = $rootScope.$new(); 
    AppCtrl = $controller('AppCtrl', { $location: $location, $scope: $scope }); 
})); 
it('AppCtrl has been initialized', inject(function() { 
    expect(AppCtrl).toBeTruthy(); 
})); 

Versuchte etwas in dieser Richtung:

it('should set the default category to match the category_id found in location.hash', function() { 
    $browser.setUrl('http://server/#/categories/2'); 
    $browser.poll(); 
    scope.$eval(); 
    $browser.xhr.flush(); 
    expect(ctrl.selectedCategory).toBe('2'); 
}); 

half nicht.

Antwort

7

Hier ist Ihre Lösung https://groups.google.com/d/msg/angular/F0jFWC4G9hI/FNz3oQu0RhYJ.

Nur um Sie zu informieren, Igor Minar und Vojta Jína sind beide Angular-Entwickler und letztere ist eine der Hauptpersonen hinter AngularJs Unit-Tests, also achte darauf.

Also, im Grunde verwendet es bereits eine gespottete Version des $location Dienstes im Test und Sie sollten in der Lage sein, es perfekt zu kontrollieren.

+4

Danke für Ihren Beitrag. Ein kurzer Überblick über SO könnte jedoch helfen: Es macht die Qualität Ihrer Antwort zuverlässiger und der Inhalt leichter zugänglich. – AsTeR

+0

Hallo @AsTeR. Danke für die Rückmeldung. Aber ich habe es bereits im letzten Absatz zusammengefasst (obwohl ich gerade ein kleines Problem behoben habe). Können Sie mir bitte einen Überblick geben, wie es vollständiger sein könnte? –

+0

Ohh, denkst du, ich habe dich, du meinst ein kleines Beispiel, wie man es kontrolliert? Hab dich. Wird es bald tun. Danke @AsTeR. –

Verwandte Themen