Here's a quick way to compare two JSON String using Jackson. While we could always do a simple String compare, this method allows us to keep the expected JSON in a readable format, such as pretty-printed in a test resource:
import com.fasterxml.jackson.databind.ObjectMapper
class JsonAssert {
static ObjectMapper mapper = new ObjectMapper()
static void areEqual(String json1, String json2) {
def tree1 = mapper.readTree json1
def tree2 = mapper.readTree json2
assert tree1.equals(tree2)
}
}
The above can be called from an expect:
or then:
block in a Spock specification.