REST Assured 系列汇总 之 REST Assured 16 - RequestSpecBuilder
开始RequestSpecBuilder的学习之前,请先参考:
RequestSpecification
RequestSpecification Call Http方法
RequestSpecBuilder类:
我们可以用RequestSpecBuilder来创建RequestSpecification。RequestSpecBuilder是Rest Assured的一个类,包含许多方法,设置cookie,headers,body,authentication,parameters,query parameters,path parameters,base path,bash URL,proxy等。这些构成一个Requestspecification,设置这些必要的信息,我们可以用build()方法来获取一个Requestspecification引用。
Requestspecification有助于重用specifications,相比直接用Requestspecification,RequestSpecBuilder的方法名更有意义一点。
import io.restassured.RestAssured;
import io.restassured.builder.RequestSpecBuilder;
import io.restassured.response.Response;
import io.restassured.specification.RequestSpecification;
public class RequestSpecBuilderExample {
public static void main(String[] args) {
// Creating an object of RequestSpecBuilder
RequestSpecBuilder reqBuilder = new RequestSpecBuilder();
// Setting Base URI
reqBuilder.setBaseUri("https://restful-booker.herokuapp.com");
// Setting Base Path
reqBuilder.setBasePath("/booking");
// Getting RequestSpecification reference using builder() method
RequestSpecification reqSpec = reqBuilder.build();
// Usage in different styles
// We can directly call http verbs on RequestSpecification
Response res1= reqSpec.get();
System.out.println(res1.asString());
System.out.println("======================");
// We can also pass RequestSpecification reference variable in overloaded given() method
Response res2 = RestAssured.given(reqSpec).get();
System.out.println(res2.asString());
System.out.println("======================");
// We can also pass RequestSpecification using spec() method
Response res3 = RestAssured.given().spec(reqSpec).get();
System.out.println(res3.asString());
}
}
注意:上面第21行会有下面异常。这是Rest Assured已经存在的bug。可以注释到21,22行“Response res1= reqSpec.get();继续运行。