Ich bin auf der Suche nach einer Möglichkeit, $httpBackend
auszuwerten, um zu sehen, ob es Interaktionen gibt. Ich möchte sicherstellen, dass es an diesem Punkt in meinem Testfall nie aufgerufen wurde. Ich habe die Dokumentation hier überprüft: https://docs.angularjs.org/api/ngMock/service/ $ httpBackend und habe die Antwort nicht gefunden.
Klasse $ http
class HomeService {
/*@ngInject*/
constructor ($http, $log) {
this.http = $http;
this.log = $log;
}
submit(keycode) {
this.log.log("submitting key code: " + keycode);
if (keycode === "") {
return false;
}
this.http.post(`/api/keycode/${keycode}`).then ((response) => {
this.log.log(response);
return true;
});
}
}
export default HomeService;
Testfall so weit.
import HomeService from './home.service';
describe('HomeService',() => {
let homeService, $httpBackend;
beforeEach(inject(($injector) => {
$httpBackend = $injector.get('$httpBackend');
}));
afterEach(function() {
$httpBackend.verifyNoOutstandingExpectation();
$httpBackend.verifyNoOutstandingRequest();
});
describe('submit',() => {
it('submit empty keycode',() => {
homeService = new HomeService($httpBackend, console);
let value = homeService.submit("");
expect(value).to.be.false;
//valid no interactions with $httpBackend here!
});
});
});
Homeservice sollte mit $ http, nicht $ injiziert werden httpBackend. – estus