2017-09-13 7 views
0

私はキュウリのbddテストをやっています。私はクラス[MyClient]を持っていて、安心してメソッドをラップしています。私は[MyClient]を呼び出す複数のクラスを持っています。RestAssured:リクエストを送信した後、RequestSpecificationフィールドまたはパラメータを取得するにはどうすればよいですか?

私はput、postなどのメソッドを実行できますが、実際にはリクエストフィールド(ヘッダ、本文...)を要求する方法があるかどうかは疑問です。

また、応答を取得して解析するのに問題はありませんが、リクエストを送信できません。

次のことを考えると、私はrequestというフィールドにRequestSpecificationインスタンスを格納するsendPostRequest()を呼び出すことができますし、私はgetterを呼び出すことで、いつでもそれを取得することができます。しかし、私は個々のフィールドをRequestSpecificationオブジェクトから取ることはできません。 debuggerから、私はフィールドがちょうど良いことが分かりましたので、私はそれを得るためのいくつかのきれいな方法がなければならないと思っていました。

私は既にlog()を試しましたが、私に必要なものを与えてくれないようです。 何か助けていただければ幸いです!

CALLINGクラス:

public class MyInterfaceSteps() { 
private myClient = new MyClient(); 

public sendPostRequest(){ 
    myClient.post(someHeaders, someBody, someUrl); 
} 
} 

クライアントクラス:

public class MyClient() { 
private RequestSpecification request; 
private Response response; 

public getRequest() { 
    return request; 
} 

public getResponse() { 
    return response; 
} 

public Response post(Map<String, String> headers, String body, String url) { 
    request = given().headers(headers).contentType(ContentType.JSON).body(body); 
    response = request.post(url); 
} 
} 

答えて

2

あなたは、あなたが得ることができ、そこからFilterableRequestSpecification(http://static.javadoc.io/io.rest-assured/rest-assured/3.0.3/io/restassured/specification/FilterableRequestSpecification.html)(へのアクセスを提供しますフィルタ(https://github.com/rest-assured/rest-assured/wiki/Usage#filters)を作成変更する)ヘッダー、ボディーなどがあります。フィルターは、これらの値を任意のデータ構造に保管することができます。

+0

リクエストの完全なURIをtestNGカスタムレポートに追加できるようにしたいと思いました。これを行うには、 'FilterableRequestSpecification httpRequest =(FilterableRequestSpecification)RestAssured.given();'を実行してから、 'queryParam(...)'で自分のクエリパラメータを適用し、 '.get(mypath)'を実行しなければなりません。フィルタを必要とせずにリクエストを 'FilterableRequestSpecification'にキャストすることで、最後に' httpRequest.getURI() 'でURIにアクセスできます。なぜ 'getURI()'がRequestSpecificationのデフォルトメソッドではないのですか?それをFilterableRequestSpecificationにキャストしても問題はありますか? – agatheblues

関連する問題