Sinon: Sinon le faux serveur n'affecte pas axios dans le nœud

Créé le 19 oct. 2015  ·  6Commentaires  ·  Source: sinonjs/sinon

L'utilisation du faux serveur de Sinon ne semble pas affecter Axios qui utilise http dans l'environnement de nœud (et XMLHttpRequest pour le navigateur).

J'utilise Moka . J'évite le karma-runner parce que je n'en vois pas la nécessité. Non, sauf si le nœud http n'est pas pris en charge.

Voici une démo . Il suffit de le cloner et de lancer npm test .

Commentaire le plus utile

J'ai résolu ce problème en utilisant des alias de méthode de requête d'axios, au lieu de passer la configuration et d'initier la requête. C'est-à-dire qu'au lieu de
axios(config)

j'ai utilisé
axios[method](url, data, config)

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

C'est plus propre que d'utiliser la bibliothèque moxios.

Réponse Stackoverflow

Tous les 6 commentaires

Les tests réels sont ici : https://github.com/srph/axios-response-logger/blob/master/tests/spec.js

Je suppose que l'ordre pourrait expliquer le comportement, mais je ne suis pas tout à fait sûr que la création explicite de bac à sable soit la bonne chose à faire de toute façon. Faudra enquêter plus tard.

On dirait que cela ne fonctionne toujours pas avec axios.

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

Je ne sais pas pourquoi je ne l'ai pas fermé la première fois : en inspectant cela, je vois que les tests sont en cours d'exécution dans Node. C'est totalement non pris en charge _naturellement_ pour une implémentation XHR. Si les tests étaient exécutés dans un navigateur, disons en utilisant mochify ou Karma, ce serait autre chose, car les stubs XHR ciblent l'environnement du navigateur.

@brunolm : Je n'ai toujours pas vu de test s'exécuter dans un navigateur qui échoue, donc il n'y aura pas d'examen jusqu'à ce que cela se produise. Les détails sur l'obtention du stub XHR d'une bibliothèque de test fonctionnant dans une bibliothèque HTTP pour Node et le navigateur lors de l'exécution sur Node sont définitivement hors de notre portée. Si vous faites quelque chose comme ça, j'essaierais de créer un équivalent axios de supertest (pour SuperAgent).

Pour info : axios a déjà sa propre bibliothèque de stub ,

J'ai résolu ce problème en utilisant des alias de méthode de requête d'axios, au lieu de passer la configuration et d'initier la requête. C'est-à-dire qu'au lieu de
axios(config)

j'ai utilisé
axios[method](url, data, config)

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

C'est plus propre que d'utiliser la bibliothèque moxios.

Réponse Stackoverflow

Cette page vous a été utile?
0 / 5 - 0 notes