### Question:
HasJsonWhich extends TypeSafeMatcher<String> { @Override protected void describeMismatchSafely(String item, Description mismatchDescription) { JsonNode node = createNode(item); matcher.describeMismatch(node, mismatchDescription); } HasJsonWhich(Matcher<JsonNode> matcher); @Override void describeTo(Description description);  }### Answer:
@Test public void matcherShouldDescribeMismatchCorrectly() { HasJsonWhich matcher = new HasJsonWhich(new HasJsonValue("number", new IsEqual<Integer>(1))); Description description = new StringDescription(); matcher.describeMismatchSafely("{\"number\":10}", description); assertThat(description.toString(), is("was <{\"number\":10}>")); }