以下是我正在使用的代码
JSONObject requestParams = new JSONObject();
requestParams.put("something", "something value");
requestParams.put("another.child", "child value");
这就是API需要发布的方式
{
"something":"something value",
"another": {
"child": "child value"
}
}
我收到错误声明"另一个。字段是必需的。"
如何通过restAssured发布此信息?其他API不需要使用嵌套工作进行发布,因此我假设它失败的原因。
答案 0 :(得分:2)
您可以创建一个请求对象,然后让RestAssured库将对象序列化为json。
例如:
class Request {
private String something;
private Another another;
public Request(final String something, final Another another) {
this.something = something;
this.another = another;
}
public String getSomething() {
return something;
}
public Another getAnother() {
return another;
}
}
class Another {
private String child;
public Another(final String child) {
this.child = child;
}
public String getChild() {
return child;
}
}
..然后在测试方法
@Test
public void itWorks() {
...
Request request = new Request("something value", new Another("child value"));
given().
contentType("application/json").
body(request).
when().
post("/message");
...
}
请不要忘记行contentType("application/json")
,以便库知道您要使用json。
请参阅:itsme86
答案 1 :(得分:0)
您发布的内容是因为JSONObject
没有点分隔关键路径的概念。
{
"something":"something value",
"another.child": "child value"
}
您需要制作另一个JSONObject
JSONObject childJSON = new JSONObject():
childJSON.put("child", "child value");
requestParams.put("another", childJSON);