Sinon: O servidor falso Sinon não afeta axios no nó

Criado em 19 out. 2015  ·  6Comentários  ·  Fonte: sinonjs/sinon

Usar o servidor falso da Sinon não parece afetar o Axios, que usa http no ambiente de nó (e XMLHttpRequest para o navegador).

Estou usando o Mocha . Estou evitando o corredor do carma porque não vejo necessidade. Não, a menos que o nó http não seja suportado.

Aqui está uma demonstração . Basta cloná-lo e executar npm test .

Comentários muito úteis

Resolvi isso usando aliases de método de solicitação de axios, em vez de passar a configuração e iniciar a solicitação. Ou seja, em vez de
axios(config)

eu usei
axios[method](url, data, config)

Então agora,
sandbox.stub(axios, "get").returns(Promise.resolve({status:200, body: searchResponse}));

Isso é mais limpo do que usar os moxios da biblioteca.

Resposta Stackoverflow

Todos 6 comentários

Os testes reais estão aqui: https://github.com/srph/axios-response-logger/blob/master/tests/spec.js

Eu presumiria que a ordem pode explicar o comportamento, mas não tenho certeza se a criação de sandbox explícita é a coisa certa a fazer de qualquer maneira. Terá que investigar mais tarde.

Parece que ainda não funciona com axios.

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

Não sei por que não fechei isso da primeira vez: ao inspecionar, vejo que os testes estão sendo executados no Node. Isso é totalmente incompatível _naturalmente_ para uma implementação de XHR. Se os testes fossem executados em um navegador, digamos usando mochify ou Karma, seria outra coisa, já que os stubs XHR têm como alvo o ambiente do navegador.

@brunolm : Eu ainda não vi um teste em execução em um navegador que falhe, então não haverá ninguém investigando isso até que aconteça. Os detalhes sobre como obter o stub XHR de uma biblioteca de teste funcionando em uma biblioteca HTTP para Node e o navegador ao ser executado no Node está definitivamente fora do escopo para nós 😄 Se você estiver fazendo algo assim, eu tentaria criar um axios equivalente a supertest (para SuperAgent).

Para sua informação: axios já tem sua própria biblioteca de stub ,

Resolvi isso usando aliases de método de solicitação de axios, em vez de passar a configuração e iniciar a solicitação. Ou seja, em vez de
axios(config)

eu usei
axios[method](url, data, config)

Então agora,
sandbox.stub(axios, "get").returns(Promise.resolve({status:200, body: searchResponse}));

Isso é mais limpo do que usar os moxios da biblioteca.

Resposta Stackoverflow

Esta página foi útil?
0 / 5 - 0 avaliações