Sinon: El servidor falso de Sinon no afecta a axios en el nodo

Creado en 19 oct. 2015  ·  6Comentarios  ·  Fuente: sinonjs/sinon

El uso del servidor falso de Sinon no parece afectar a Axios, que usa http en el entorno de nodo (y XMLHttpRequest para el navegador).

Estoy usando Mocha . Estoy evitando karma-runner porque no veo la necesidad. No, a menos que el nodo http no sea compatible.

Aquí tienes una demostración . Simplemente clónelo y ejecute npm test .

Comentario más útil

Resolví esto usando alias de método de solicitud de axios, en lugar de pasar la configuración e iniciar la solicitud. Es decir, en lugar de
axios(config)

solía
axios[method](url, data, config)

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

Esto es más limpio que usar la biblioteca moxios.

Respuesta de Stackoverflow

Todos 6 comentarios

Las pruebas reales están aquí: https://github.com/srph/axios-response-logger/blob/master/tests/spec.js

Asumiría que el orden podría explicar el comportamiento, pero no estoy muy seguro de si la creación explícita de sandbox es lo correcto de todos modos. Tendré que investigar más adelante.

Parece que todavía no funciona con axios.

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

No estoy seguro de por qué no cerré esto la primera vez: al inspeccionar esto, veo que las pruebas se están ejecutando en Node. Eso es totalmente incompatible _naturalmente_ para una implementación de XHR. Si las pruebas se ejecutaran en un navegador, digamos usando mochify o Karma, sería otra cosa, ya que los stubs XHR apuntan al entorno del navegador.

@brunolm : Todavía no he visto una prueba ejecutándose en un navegador que falla, por lo que no habrá nadie investigando esto hasta que eso suceda. Los detalles sobre cómo hacer que el código auxiliar XHR de una biblioteca de prueba funcione en una biblioteca HTTP para Node y el navegador cuando se ejecuta en Node están definitivamente fuera de nuestro alcance 😄Si estás haciendo algo así, intentaría crear un axios equivalente a supertest (para SuperAgent).

FYI: axios ya tiene su propia biblioteca de stubbing ,

Resolví esto usando alias de método de solicitud de axios, en lugar de pasar la configuración e iniciar la solicitud. Es decir, en lugar de
axios(config)

solía
axios[method](url, data, config)

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

Esto es más limpio que usar la biblioteca moxios.

Respuesta de Stackoverflow

¿Fue útil esta página
0 / 5 - 0 calificaciones