Ich schreibe einen Test für unsere App, und ich habe angularjs-mocks.js enthalten, so dass ich die netten dsl-Funktionen nutzen kann, die mit ihm kommen.Verwendung von angularjs Mocks ohne tatsächlich etwas zu spotten
Aber ich möchte nicht wirklich die $ http Anfragen verspotten, da ich diese App mit einem Kunden-Backend integriere, das ständig im Fluss ist, und ich möchte gegen echte Antworten testen.
Was ist die beste (einfachste) Möglichkeit, das echte http-Backend in dieser Situation zu verwenden?
EDIT:
ich eine mögliche Lösung gefunden haben, die diese zu verwenden ist:
$httpBackend.whenPOST(/.*/).passThrough()
Aber wie ich weiter unten erwähnt, ist es nicht funktioniert, möglicherweise defekt? Ich bekomme diese Fehlermeldung:
Error: Unexpected request: POST /some/url/here No more request expected
ich ein Problem hier geöffnet haben: https://github.com/angular/angular.js/issues/1434
Sie könnten immer ein Mock $ http zu injizieren, indem Sie ein einfaches Javascript erstellen, das die XHR http Anfrage, keine Winkel Mocks notwendig war. Es ist das Schöne daran, in JavaScript zu testen. Sie können Objekte zusammenfassen und sie durch dynamisches Tippen injizieren, wie es Ihnen gefällt. –
Richtig, aber das Problem ist, dass anglemocks $ httpBackend überschreibt, was $ http verwendet. Ich versuche jetzt, es mit $ httpBackend.whenGET (/.*/) umgehen. PassThrough(), aber das scheint entweder gebrochen, oder ich verwende es nicht richtig. – doubledriscoll
Ich vermute, was ich vorschlage, ist, dass Sie vanilla js verwenden können, um ein Objekt mit allen notwendigen Methoden zu erstellen. Kein eckiger Schein erforderlich. –