David, miembro de este gran equipo de trabajo, nos hizo el favor de crear esta crónica ya que controla muy bien este tema.
Solución:
Puede usar la biblioteca https://github.com/skyscreamer/JSONassert que tiene un método de afirmación que permite la personalización.
Aquí hay un ejemplo de una prueba que está pasando (y tal ignorando el valor de la time
campo)
@Test
public void test() throws JSONException
JSONAssert.assertEquals("x: 1, time:123",
"x: 1, time:234",
new CustomComparator(
JSONCompareMode.STRICT,
Customization.customization("time", // json path you want to customize
new ValueMatcher()
@Override public boolean equal(Object o1, Object o2)
return true; // in your case just ignore the values and return true
))
);
Aquí está el enlace al javadoc del método assertEquals que estoy usando en el ejemplo: http://jsonassert.skyscreamer.org/apidocs/org/skyscreamer/jsonassert/JSONAssert.html#assertEquals-java.lang.String-java. lang.String-org.skyscreamer.jsonassert.comparator.JSONComparator-
Aquí tienes las reseñas y puntuaciones
Si crees que te ha resultado provechoso este post, sería de mucha ayuda si lo compartes con otros programadores y nos ayudes a difundir nuestro contenido.