ich eine AuthService
haben, die eine Abhängigkeit von userService
hat, die von einem anderen ModulJasmin und AngularJS - Unit-Tests eine verspottete Abhängigkeit
Ich versuche, ein Gerät zu testen, die eine Eigenschaft des userService
prüft zu schreiben kommt die I habe mich verspottet und den $ service in meiner Testspezifikation verwendet.
Meine Erwartung auf meinem userService schlägt fehl, da es als undefined zurückkommt. Was muss ich tun, um meine gespotteten zu testen?
Dank
UPDATE
Ok auf die Kommentare so basiert, kann ich es durch die Organisation meiner Tests zu bestehen bekommen wie so
describe('hasAccessToken', function() {
beforeEach(function(){
authService.hasAccessToken();
});
it('should make a get request to catalogues', function() {
$httpBackend.expectGET('/auth/checktoken').respond({});
$httpBackend.flush();
});
it('should set userService.userLoggedIn to be true', function() {
$httpBackend.expectGET('/auth/checktoken').respond({});
$httpBackend.flush();
expect(userService.userLoggedIn).toBeTruthy();
});
});
Wie Sie ich versuche sehen um einen Test für den expectGET und den userService separat zu schreiben, ist das korrekt? Scheint einfach ziemlich ausschweifend ??
Ist Der Vorgang, den authService zu injizieren, um userLoggedIn auf "True" zu setzen, oder fehlt ein Anruf? Etwas wie authService.login (Benutzer); –
Ja Entschuldigung, ich habe mein Code-Snippet aktualisiert, also gibt es einen früheren Test, der 'authService.hasAccessToken() 'aufruft, der' userService.userLoggedIn' auf true setzt – mindparse
Die beforeEach-Methode wird vor jedem Test ausgeführt, und Sie wissen es setzt den Status von userService zurück. Sie könnten den Aufruf von hasAccessToken in Ihre beforeEach-Methode einfügen oder sie bei Bedarf in jedem Test aufrufen. –