Ich habe eine Funktion in meinem Bereich, um den Status meines Dienstes abzurufen, wenn der Benutzer auf eine Schaltfläche klickt, oder wenn ein Ereignis ausgelöst wird und diese Funktion automatisch aufgerufen wird.
Dies ist meine Funktion, definiert in der Steuerung verwende ich:
$scope.getStatus = function() {
$http({method: 'GET', url: config.entrypoint + config.api + '/outbound/service/' + $scope.serviceId})
.success(function(data) {
$scope.errorMessage = '';
$scope.serviceAllGood = data;
})
.error(function() {
$scope.serviceAllGood = '';
$scope.errorMessage = 'We are experiencing problems retrieving your service status.';
});
}
Die Unit-Test wie gemacht wird:
describe('SendServiceCtrl', function(){
var scope, ctrl, $httpBackend, configuration;
beforeEach(function() {
module('papi', 'ngUpload');
});
beforeEach(inject(function(_$httpBackend_, $rootScope, $controller, config) {
configuration = config;
$httpBackend = _$httpBackend_;
$httpBackend.expectGET(configuration.entrypoint + configuration.api + "/user/outboundstatus/").respond(200, {"meta":{"apiVersion":"0.1","code":200,"errors":null},"response":{"allowed":false}});
scope = $rootScope.$new();
ctrl = $controller('SendServiceCtrl', {$scope: scope});
}));
it('Should get the status', function() {
scope.serviceId = '09bb5943fa2881e1';
scope.getStatus();
$httpBackend.whenGET(configuration.entrypoint + configuration.api + '/outbound/service/' + scope.serviceId).respond(200, {"meta":{"apiVersion":"0.1","code":200,"errors":null}});
});
});
Im Unit-Test Ich habe auch andere httpBackend Tests $ auf der gleiche Controller, aber alle funktionieren einfach. Was mache ich falsch?
Vorlagen verursachen dann auch diesen Fehler. – FlavorScape
Glauben Sie, dass die Verwendung von '$ templateCache' wie' ui.bootstrap' die Notwendigkeit des Spottes des GETs zunichte machen würde? – domokun
@domokun Können Sie einen Link dorthin veröffentlichen, wo dieser verwendet wird? –