Saltar al contenido

cómo decirle a assertJsonEquals que ignore un campo al comparar

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *