APIから受け取った応答に応じて、自分のアプリケーションの動作をチェックするテストを作成しようとしています。これを行うには、私が必要とする設定を持っている要求に応答しようとしています。テストでのリモートHTTP応答の模擬
私のアプリがログイン後にホームページにリダイレクトされることを確認する例です。応答がHTTP 200で、APIキーの値が必要です。私は
は、現在、私がいない成功を収めて、次のライブラリを試してみました
- moxiosた要求をするためにaxiosを使用しています
- axios-モックアダプタ
- 矢筈
誰かがリモートHTTPリクエストを嘲笑して経験を持っていますか?相続人の反応?
EDIT:それは助けている場合、私はテスト
it('Does stuff', function() {
moxios.stubRequest('/auth/get_api_key', {
status: 200,
responseText: 'hello'
})
return this.app.client.setValue('[name="username"]', 'testing').then(() => {
return this.app.client.setValue('[name="password"]', 'testing').then(() => {
return this.app.client.submitForm('#login-form').then(() => {
return this.app.client.getRenderProcessLogs().then(function (logs) {
console.log(logs)
})
})
})
})
})
ためモカとチャイを使用しています上記のコードは、私は、要求が通過し、それがこの
を出力かどうかを確認するために使用しているものです[{レベル: 'SEVERE' メッセージ: 'http://127.0.0.1:8000/auth/get_api_key/が - リソースのロードに失敗しました:正味:: ERR_CONNECTION_REFUSED' 源: 'ネットワーク' タイムスタンプ:1510082077495}]
非常に詳細な回答ありがとうございます。注意すべき点の1つは、例を動作させるためには 'equal(res.data.apiKey、1234567890);'を実行しなければならないということです。 さらに、これは残念なことに私のケースに合わないようです。私は、アプリケーションで使用されているAxiosインスタンスにアクセスできない。私は、APIが正しい値を返すかどうかをテストしていない、私は、アプリケーションがAPIから正しい値を設定することをテストしたい。 言い換えれば、私はアプリでリクエストを作成しており、テストで手動で行うことはできません。私は、アプリケーションがapiKey値を正しく設定するように要求に応答したいと思っています。それは理にかなっていますか? –
もう少し調べてみると、デフォルトで他のリクエストを模擬しているようです。彼らのドキュメントで実証されているように。しかし何らかの理由で、moxios.requests.mostRecent()が未定義の結果を返す –
Axiosのインスタンスを呼び出して、テストエンドポイントを仕様にしていますか?私はこの行をここでは 'axios.get( '/ auth/get_api_key')、then(onFulfilled);'も除外する価値があるでしょうか、すべての依存関係がインストールされていますか(sinon、axios、moxios)? – Ajikan