Sinon: Der gefälschte Sinon-Server hat keinen Einfluss auf Axios im Knoten

Erstellt am 19. Okt. 2015  ·  6Kommentare  ·  Quelle: sinonjs/sinon

Die Verwendung des gefälschten Servers von Sinon scheint sich nicht auf Axios zu auswirken, das http in der Node-Umgebung (und XMLHttpRequest für den Browser) verwendet.

Ich verwende Mokka . Ich meide Karma-Runner, weil ich die Notwendigkeit nicht sehe. Nur, wenn Knoten http nicht unterstützt wird.

Hier ist eine Demo . Einfach klonen und npm test ausführen.

Hilfreichster Kommentar

Ich habe dies gelöst, indem ich die Aliase der Anfragemethode von Axios verwendet habe, anstatt die Konfiguration zu übergeben und die Anfrage zu initiieren. Das heißt, statt
axios(config)

ich benutzte
axios[method](url, data, config)

Also jetzt,
sandbox.stub(axios, "get").returns(Promise.resolve({status:200, body: searchResponse}));

Dies ist sauberer als die Verwendung der Bibliotheks-Moxios.

Stackoverflow-Antwort

Alle 6 Kommentare

Aktuelle Tests finden Sie hier: https://github.com/srph/axios-response-logger/blob/master/tests/spec.js

Ich würde davon ausgehen, dass die Reihenfolge das Verhalten erklären könnte, bin mir aber nicht ganz sicher, ob die explizite Sandbox-Erstellung sowieso das Richtige ist. Muss später nachforschen.

Sieht so aus, als ob es mit Axios immer noch nicht funktioniert.

http://stackoverflow.com/q/41516044/340760

Ich bin mir nicht sicher, warum ich dies nicht beim ersten Mal geschlossen habe: Bei der Überprüfung sehe ich, dass die Tests in Node. Das wird _natürlich_ für eine XHR-Implementierung völlig nicht unterstützt. Würden die Tests in einem Browser ausgeführt, beispielsweise mit mochify oder Karma, wäre dies eine andere Sache, da die XHR-Stubs auf die Browserumgebung abzielen.

@brunolm : Ich habe immer noch keinen Test gesehen, der in einem supertest erstellen

Zur Info: axios verfügt bereits über eine eigene Stubbing-Bibliothek, moxios .

Ich habe dies gelöst, indem ich die Aliase der Anfragemethode von Axios verwendet habe, anstatt die Konfiguration zu übergeben und die Anfrage zu initiieren. Das heißt, statt
axios(config)

ich benutzte
axios[method](url, data, config)

Also jetzt,
sandbox.stub(axios, "get").returns(Promise.resolve({status:200, body: searchResponse}));

Dies ist sauberer als die Verwendung der Bibliotheks-Moxios.

Stackoverflow-Antwort

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen