我创建了一个api测试,该测试命中了一个端点并收到了响应,但是我正在努力在另一个黄瓜步骤中使用此响应。
我的第一步使用以下方法:
public Response booking(SharedStepData sharedStepData, String path, BookingType bookingType) throws IOException {
String url = "https://example.net." + System.getProperty("endpoint") + "/v10/" + path + "Booking";
RestAssured.useRelaxedHTTPSValidation();
String payload = createBookingPayload(sharedStepData, bookingType);
Response response = RestAssured
.given().contentType(ContentType.JSON)
.log().all()
.body(payload)
.when().post(url)
.thenReturn();
ResponseBody body = response.getBody();;
return response;
}
我知道需要保存此响应,然后在另一步方法中使用它来执行其他操作,例如使用响应中的特定数据击中另一个端点,有什么想法吗?
答案 0 :(得分:0)
您可以在此处使用封装逻辑,并可以从其他类访问变量
public class Test{
private String bookingResponse;
public String getBookingResponse(){
return bookingResponse;
}
public void setBookingResponse(String response){
bookingResponse=response;
}
}
调用第一种方法后,可以更新如下的bookingResponse值
Test test=new Test();
test.setBookingResponse(<<Call your first Response Method>>);
只要您想访问上述响应,就可以使用test.getResponse()方法。如果您使用相同的Test类实例,它将给出以上响应。
答案 1 :(得分:0)
在步骤之间共享状态的方法是将其存储在实现步骤的类中的字段中。
在不同类中实现步骤时,在步骤之间共享状态的方法是在两个实现类中共享一个公共对象。在Java中,惯用的方法是使用依赖项注入。
我已经写了两个关于该主题的博客文章,它们可能对您有用。最简单的解决方案是使用PicoContainer。