在 Youtube 上的教程视频之后,我正在学习从头开始创建 REST Assured 和 Cucumber 框架。
下面是步骤定义及其在 RestAssuredExtension 类中调用的方法。
@Given("^I perform GET operation for \"([^\"]*)\"$")
public void i_Perform_GET_Operation_For(String url) throws Throwable {
RestAssuredExtension.GetOps(url);
}
package utilities;
import io.restassured.RestAssured;
import io.restassured.builder.RequestSpecBuilder;
import io.restassured.http.ContentType;
import io.restassured.response.Response;
import io.restassured.response.ResponseOptions;
import io.restassured.specification.RequestSpecification;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Map;
public class RestAssuredExtension {
public static RequestSpecification Request;
public RestAssuredExtension() {
//Arrange
RequestSpecBuilder builder = new RequestSpecBuilder();
builder.setBaseUri("http://localhost:3000/");
builder.setContentType(ContentType.JSON);
var requestSpec = builder.build();
Request = RestAssured.given().spec(requestSpec);
}
public static ResponseOptions<Response> GetOps(String url) {
//Act
try {
return Request.get(new URI(url));
} catch (URISyntaxException e) {
e.printStackTrace();
}
return null;
}
}
在视频教程中,测试成功通过。但是当我自己运行测试时,会导致以下错误:
步骤失败 java.lang.NullPointerException:无法调用“io.restassured.specification.RequestSpecification.get(java.net.URI)”,因为“utilities.RestAssuredExtension.Request”在实用程序中为空。RestAssuredExtension.GetOps(RestAssuredExtension.java:42 ) 在 steps.GETPostSteps.i_Perform_GET_Operation_For(GETPostSteps.java:21)
请问有接盘的吗?