Sinon: Sinonフェイクサーバーはノードのaxiosに影響を与えません

作成日 2015年10月19日  ·  6コメント  ·  ソース: sinonjs/sinon

Sinonの偽のサーバーを使用しても、ノード環境でhttp (およびブラウザーではXMLHttpRequest )を使用するAxiosには影響しないようです。

モカを使っています。 必要性がわからないので、私はカルマランナーを避けています。 ノードhttpがサポートされていない場合を除きます。

これがデモです。 クローンを作成してnpm testを実行するだけです。

最も参考になるコメント

設定を渡してリクエストを開始する代わりに、axiosのリクエストメソッドエイリアスを使用してこれを解決しました。 つまり、代わりに
axios(config)

使った
axios[method](url, data, config)

だから今、
sandbox.stub(axios, "get").returns(Promise.resolve({status:200, body: searchResponse}));

これは、ライブラリmoxiosを使用するよりもクリーンです。

Stackoverflow Answer

全てのコメント6件

実際のテストはここにあります: https

順序が動作を説明していると思いますが、明示的なサンドボックスの作成がとにかく正しいことであるかどうかはよくわかりません。 後で調査する必要があります。

それはまだaxiosでは動作しないようです。

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

なぜこれを初めて閉じなかったのかわかりません。これを調べると、ノードでテストが実行されていることがわかります。 これは、XHR実装では_当然_サポートされていません。 テストがブラウザで実行された場合、たとえばmochifyまたはKarmaを使用した場合、XHRスタブはブラウザ環境を対象としているため、これは別のことです。

@brunolm :失敗するブラウザーで実行されているテストはまだ見たことがないので、それが発生するまでこれを調べることはありません。 テストライブラリのXHRスタブをノードのHTTPライブラリとノードで実行しているときにブラウザで動作させる方法の詳細は、私たちの範囲外です😄そのようなことをしている場合は、 supertest相当するaxiosを作成してみます

参考:axiosにはすでに独自のスタブライブラリ

設定を渡してリクエストを開始する代わりに、axiosのリクエストメソッドエイリアスを使用してこれを解決しました。 つまり、代わりに
axios(config)

使った
axios[method](url, data, config)

だから今、
sandbox.stub(axios, "get").returns(Promise.resolve({status:200, body: searchResponse}));

これは、ライブラリmoxiosを使用するよりもクリーンです。

Stackoverflow Answer

このページは役に立ちましたか?
0 / 5 - 0 評価