bugfix> java > 投稿

Wiremock JSONスタブファイルを使用してクエリパラメーターをモックしようとしています。

このようにするとうまくいきます:

{
  "request": {
    "method": "GET",
    "url": "/posts?id=1",
  },
//...
}

ただし、このように専用フィールドを使用するようにクエリパラメーターを変更すると、機能しなくなります。

{
  "request": {
    "method": "GET",
    "urlPath": "/posts",
    "queryParameters": {
      "id": {
        "equalTo": "1"
      }
    }
  },
  //...
}

理由は何ですか?

テスト要求は次のようになりますhttp:// some-host/posts?id = 1

回答 3 件
  • これは私のために働く、あなたの "urlPath" を変更する   "urlPathPattern" へ  ただし、この JSON の構造には注意してください 。だから urlPath  完全に一致するパターンですが、 urlPathPattern  パスおよびクエリパラメータでの正規表現一致

     {
            "request": {
                "urlPathPattern": "/posts",
                "method": "GET",
                "queryParameters": {
                    "id": {
                        "equalTo": "1"
                    }
                }
            },
            "response": {
                "status": 200,
                "body":"This is successful"
            }
        }
    
    

  • 試すことができます urlPathPattern  の代わりに urlPath

    ここで述べたように、完全一致のためのurlPathとurlPathPatternは regex

    を使用して urlPathPattern  QueryParameterでクエリが解決されます。

    {
      "request": {
        "method": "GET",
        "urlPathPattern": "/posts",
        "queryParameters": {
          "id": {
            "equalTo": "1"
          }
        }
      },
      //...
    }
    
    

    Wiremockの以下の概念を試して理解してください。

  • 問題は、 urlPath   queryParameters では動作しません  そして、これは単に予想される動作であること。 :-/ Wiremock Githubリポジトリのトピックに関するこのQ&Aを見つけました。 @tomakehurstの答えによると、これは予想される動作であり、 queryParameters   urlPathPattern を使用すると一致します 。

あなたの答え