Mam zdefiniowane następujące usługi w moim kątowej aplikacji:Dlaczego pojawia się błąd ... nieoczekiwany wniosek: GET/internalapi/cytaty
services.factory('MyService', ['Restangular', function (Restangular) {
return {
events : { loading : true },
retrieveQuotes : function() {
return Restangular.all('quotes').getList().then(function() {
return { hello: 'World' };
});
}
};
}]);
i piszę następujące specyfikację, aby go przetestować:
describe("MyService", function() {
beforeEach(module('MyApp'));
beforeEach(module("restangular"));
var $httpBackend, Restangular, ms;
beforeEach(inject(function (_$httpBackend_, _Restangular_, MyService) {
ms = MyService;
$httpBackend = _$httpBackend_;
Restangular = _Restangular_;
}));
it("retrieveQuotes should be defined", function() {
expect(ms.retrieveQuotes).toBeDefined();
});
it("retrieveQuotes should return array of quotes", function() {
$httpBackend.whenGET("internalapi/quotes").respond({ hello: 'World' });
ms.retrieveQuotes();
$httpBackend.flush();
});
});
Ilekroć uruchomić testy, pierwszy test zakończy się pomyślnie, ale z drugiej próbie produkuje błąd:
Error: Unexpected request: GET /internalapi/quotes
Co robię źle?
EDIT:
Okazało się, ja tak jak skonfigurowany Restangular
... RestangularProvider.setBaseUrl("/internalapi");
. Ale udawałem telefony pod numer internalapi/quotes
. Zauważ brak "/". Po dodaniu ukośnika /internalapi/quotes
wszystko było dobrze :)
http://stackoverflow.com/questions/14761045/jasmine-tests-angularjs-directives-with-templateurl (nie Zaznacz jako duplikat, ponieważ problemy wydają się różne w pewnym zakresie). –
Pamiętaj, aby oznaczyć pytanie jako rozwiązane, na podstawie Twojej edycji wygląda na to, że zostało naprawione. :) –
Może to być oczywiste dla innych, ale na wypadek, gdyby nie było, te 'expectMETHOD' wywołania oczekują podania pełnego adresu URL, a nie tylko ścieżki, jeśli wywołujesz usługi zewnętrzne. – kungphu