Compare JSON response using JUnit and JSONassert

david david picture david david · Apr 14, 2015 · Viewed 14.1k times · Source

I'm relatively new to Java and I'm asking to write test of JSON response server. I found JSONassert very useful but I didn't succeed to write the method getRESTData.

Anybody can help please?

@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);
}

Answer

Alex Shesterov picture Alex Shesterov · Sep 19, 2018

You can get the data as String and pass it into JSONAssert.assertEquals. Converting to JSONObject isn't necessary.

To fetch data from an URL, you can use URL.getContent method:

final String data = new URL("...").getContent();
String expected = "{friends:[{id:123,name:\"Corby Page\"}"
        + ",{id:456,name:\"Solomon Duskis\"}]}";
JSONAssert.assertEquals(expected, data, false);