passthrough ngmocke2e mocks example javascript angularjs unit-testing jasmine httpbackend

javascript - ngmocke2e - Cómo descargar las respuestas AngularJS $ httpBackend en diferente orden



httpbackend passthrough (1)

Terminé resolviendo esto extrayendo las llamadas HTTP en trozos simples. Eso me permitió eliminar $ http del servicio y $ httpBackend de las pruebas unitarias, y en su lugar burlarme de los talones para devolver las promesas que podría resolver en cualquier orden.

Tengo un servicio AngularJS que realiza una solicitud $ HTTP GET y almacena en caché la respuesta localmente. Está diseñado para manejar las múltiples llamadas que se producen simultáneamente, de modo que solo los datos de la llamada final se almacenan en caché.

Específicamente, si sucede lo siguiente:

  • Solicitud A Comenzó
  • Solicitud B iniciada
  • Solicitud B completada
  • Solicitud A completada

El resultado es que la respuesta de la solicitud B se almacena en caché, porque se inició en último lugar.

Sin embargo, estoy teniendo problemas para probar esto en Jasmine.

Puedo configurar dos expectativas de $ httpBackend.expectGET (), pero solo puedo eliminarlas en el orden en que se solicitan.

Esencialmente necesito poder algo así:

$httpBackend.expectGET(''/one'').respond(200, data1); $httpBackend.expectGET(''/two'').respond(200, data2); myService.doSomething(''/one''); myService.doSomething(''/two''); $httpBackend.flush(''/two''); $httpBackend.flush(''/one''); expect(myService.data).toBe(data2);

¿Alguien puede sugerir una forma ordenada de lograr esto?