我对Java比较陌生,我要求编写JSON响应服务器的测试。我发现JSONassert非常有用,但是我没有成功地编写getRESTData方法。
有人能帮上忙吗?
@Test
public void testGetFriends() throws JSONException {
JSONObject data = getRESTData("/friends/367.json");
String expected = "{friends:[{id:123,name:\"Corby Page\"}"
+ ",{id:456,name:\"Solomon Duskis\"}]}";
JSONAssert.assertEquals(expected, data, false);
}发布于 2018-09-19 22:24:00
您可以获取String格式的数据并将其传递给JSONAssert.assertEquals。不需要转换为JSONObject。
要从URL中获取数据,可以使用URL.getContent方法:
final String data = new URL("...").getContent();
String expected = "{friends:[{id:123,name:\"Corby Page\"}"
+ ",{id:456,name:\"Solomon Duskis\"}]}";
JSONAssert.assertEquals(expected, data, false);发布于 2021-06-14 15:52:14
这也可以通过ModelAssert - https://github.com/webcompere/model-assert来实现,它可以将任何可序列化到JSON的内容作为输入:
@Test
public void testGetFriends() throws JSONException {
JSONObject data = getRESTData("/friends/367.json");
String expected = "{friends:[{id:123,name:\"Corby Page\"}"
+ ",{id:456,name:\"Solomon Duskis\"}]}";
assertJson(data).isEqualTo(expected);
}IIRC JSONObject本质上是一个Map,因此assertJson会将其转换为用于比较的内部JsonNode格式。
https://stackoverflow.com/questions/29621046
复制相似问题