@Test
public void testPost() throws URISyntaxException {
AgencyRequest agencyRequest = new AgencyRequest();
agencyRequest.setConnectorId(1);
agencyRequest.setJobConfig("/usr/local/workspace/test.config.xml");
agencyRequest.setConnectorName("/usr/local/workspace/test.kjb");
agencyRequest.setRequestId(1);
agencyRequest.setTenantId(1);
agencyRequest.setTenantName("Test Tenant");
agencyRequest.setTimeZone("UTC");
String json = new Gson().toJson(agencyRequest);
System.out.println(json);
System.out.println(uri + "/" + ResourceConstants.JOB_CONFIG);
given().
accept(ContentType.JSON).
body(json).
post(new URI(uri + "/" + ResourceConstants.JOB_CONFIG)).
then().
assertThat().
statusCode(HttpStatus.OK_200);
}
如果我通过选择post方法和内容类型作为json和body来对Postman运行相同的测试,它会将响应状态代码设置为200.但我的单元测试未通过。在正文中,我已经尝试过如前所述传递json字符串以及尝试传递java对象,两者都失败了。
答案 0 :(得分:1)
您需要在发送请求时定义请求的内容类型。考虑进行给定的更改
.contentType(ContentType.JSON)
答案 1 :(得分:0)
尝试将此行添加到代码顶部:
.log().all()
.config(RestAssured.config().encoderConfig(encoderconfig.appendDefaultContentCharsetToContentTypeIfUndefined(false)))
.header()....
答案 2 :(得分:0)
这个改变会起作用,试试吧。
.header("Content-Type", "application/json").contentType(ContentType.JSON).accept(ContentType.JSON)