2017-01-17 9 views
1

私はSpring Cloud Contractを使用してRESTサービス用のスタブを作成していますので、RESTクライアントでテストできます。私は、Spring Bootアプリケーション内でスタブランナーを動作させており、それはすべて期待どおりに動作します。私が抱えている問題は、RESTサービスの最終的な振る舞いをよりよくシミュレートするために、レスポンスにおけるリクエストの要素を見たいということです。たとえば、この契約では、私が応答に逆流出現する要求に「コード」フィールドに渡されたものをみたい:Spring Cloud Contract Groovy DSLを使用して、リクエストの値を含めるようにレスポンスをパラメータ化するにはどうすればよいですか?

package contracts 

org.springframework.cloud.contract.spec.Contract.make { 
    request { 
     method('POST') 
     url $("/resource") 
     body ([ 
       code : $(client(regex('[a-zA-Z0-9]{5,32}'))) 
     ]) 
    } 

    response { 
     status 200 
     body([ 
       code: ??? 
     ]) 
    } 
} 

明らか入力「コード」は、正規に一致する何もすることができます実際の値は実行時まで不明です。私が "???"の代わりに置くことができるものはありますか?要求で提出されたコードを返すのですか?

request.body.serverValue['code'] 

それはそうその値がおそらく発生テスト・ソースの下ContractVerifierTest.javaにテストの自動生成を可能にするために、コンパイル時に生成される:私は、例えば、アクセスしようとしました。

これはできますか?これはSpring Cloud Contractの適切な使用ですか?

+0

私は実際に1.1.0から始まる答えの原因を更新しました。 –

+0

ああ、優れた@MarcinGrzejszczak、更新のおかげで! – billshwah47

答えて

1

現在、サポートされていません。私たちはあなたがより簡単な契約をする方法を好む。レスポンスでリクエストの値が必要な場合は、リクエストのリクエストとレスポンスのパートの両方をハードコードするだけです。

ただし、問題を提出することはできますが、将来のリリースでは何かを考えてみることができます。

更新日:

バージョン1.1.0では既に使用可能です。詳細については、ドキュメントをチェックしてください。http://cloud.spring.io/spring-cloud-static/spring-cloud-contract/1.1.0.RELEASE/#_referencing_request_from_response

+0

マイクロサービスアーキテクチャ用のSpring Cloudコントラクトを使用して、DSL契約でリクエストパラメータをどのように渡すことができますか。 – blackOcean

+0

あなたは応答のリクエストの一部を参照することを意味しますか?それが問題ならば、私がドキュメントを指している私の更新された答えを確認してください。 –

関連する問題