2016-04-29 35 views
2

私はwheresrhys fetch-mock npmモジュールを使用してアプリケーションで機能テストを実行しています。私はメソッド 'POST'と特定のペイロードでフェッチを嘲笑したいと思います。ペイロード付きポストリクエストをフェッチする方法

それはこのようなものになります。私は私のフェッチとそれに対応し、応答を与えるのペイロードをチェックしたいと思います

fetchMock.mock({ 
     routes: { 
      name: 'LoginSuccess', 
      matcher: "https://myurl", 
      method: 'POST', 
      payload: { 
       params:{User: "[email protected]", Password: "password"} 
      }, 
      response: { 
       result:{ 
        message: "Successful login", 
        credentials: "XXXXXXXXXXXXX" 
       } 
      } 
     } 
    }); 

を。たとえば、ユーザーが間違ったパスワードを送信した後、もう一度試して正しい情報を送信し、アクセス権が与えられたログインをシミュレートすることができます。同じURL、異なるペイロード、異なる応答。

これは可能ですか?フェッチの方法をチェックすることは可能ですが、ペイロードでも同じことをしたいと思います。

これを行うには良い方法がありますか?

モジュールのreadmeまたはthe fetch-mock packageのテストセクションで解決策が見つかりませんでした。

答えて

1
fetchMock.mock({ 
    routes: [{ 
      name: 'LoginSuccess', 
      matcher: function(url, opts) { 
       return (url=="https://myurl" && opts && opts.params && opts.params.User=="[email protected]" && opts.params.Password=="password"); 
      }, 
      response: { 
       result:{ 
        message: "Successful login", 
        credentials: "XXXXXXXXXXXXX" 
       } 
      } 
     }, { 
      name: 'LoginFail', 
      matcher: function(url, opts) { 
       return (url=="https://myurl" && opts && opts.params && opts.params.User=="[email protected]" && opts.params.Password!=="password"); 
      }, 
      response: { 
       result:{ 
        message: "Unsuccessful login" 
       } 
      } 
    }] 
}); 
+0

'routes'プロパティは必要ですか?それが私のために働いたのは、オブジェクトを引数として、名前、マッチャーなどで送信することでした。 – alayor

関連する問題