write raw insertar div data agregar angularjs restangular

angularjs - raw - insertar html angular



¿Por qué recibo un error? Solicitud inesperada: GET/internalapi/quotes (2)

Definí el siguiente servicio en mi aplicación angular:

services.factory(''MyService'', [''Restangular'', function (Restangular) { return { events : { loading : true }, retrieveQuotes : function() { return Restangular.all(''quotes'').getList().then(function() { return { hello: ''World'' }; }); } }; }]);

y estoy escribiendo las siguientes especificaciones para probarlo:

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(); }); });

Cada vez que ejecuto las pruebas, la primera prueba pasa pero la segunda prueba produce el error:

Error: Unexpected request: GET /internalapi/quotes

¿Qué estoy haciendo mal?

EDITAR:

Resultó que había configurado Restangular como tal ... RestangularProvider.setBaseUrl("/internalapi"); . Pero estaba fingiendo llamadas a internalapi/quotes . Observe la falta de "/". Una vez que agregué el slash /internalapi/quotes todo fue bueno :)


Debe decirle a $ httpBackend que debe esperar una solicitud GET.

describe("MyService", function () { beforeEach(module(''MyApp'')); beforeEach(module("restangular")); var Restangular, ms; beforeEach(inject(function (_Restangular_, MyService) { ms = MyService; Restangular = _Restangular_; })); it("retrieveQuotes should be defined", function () { expect(ms.retrieveQuotes).toBeDefined(); }); it("retrieveQuotes should return array of quotes", inject(function ($httpBackend) { $httpBackend.whenGET("internalapi/quotes").respond({ hello: ''World'' }); //expect a get request to "internalapi/quotes" $httpBackend.expectGET("internalapi/quotes"); ms.retrieveQuotes(); $httpBackend.flush(); })); });

Alternativamente, puede poner su respond() en su expectGET() . Prefiero poner mis declaraciones whenGET() en beforeEach() esa manera no tengo que definir la respuesta dentro de cada prueba.

//expect a get request to "internalapi/quotes" $httpBackend.expectGET("internalapi/quotes").respond({ hello: ''World'' }); ms.retrieveQuotes(); $httpBackend.flush();


Tuve el mismo problema que ustedes. Mi solución fue agregar un ''/'' al comienzo del parámetro URL de .expectGET. Usando tu ejemplo:

$httpBackend.expectGET("/internalapi/quotes").respond({ hello: ''world''})

La mejor de las suertes