tipos funciona example espaƱol ejemplo como asserttrue asserts assertequals assertarrayequals java string junit assert

java - funciona - AssertContains en cadenas en jUnit



junit assert example (6)

¿Hay alguna manera más agradable de escribir en jUnit?

String x = "foo bar"; Assert.assertTrue(x.contains("foo"));


He intentado muchas respuestas en esta página, ninguna realmente funcionó:

  • org.hamcrest.CoreMatchers.containsString no compila, no puede resolver el método.
  • JUnitMatchers.containsString está privado (y se refiere a CoreMatchers.containsString ).
  • org.hamcrest.Matchers.containsString : NoSuchMethodError

Así que dejé de intentar hacer un código agradablemente legible, pero utilicé el enfoque simple y funcional mencionado en la pregunta.


Otra variante es

Assert.assertThat(actual, new Matches(expectedRegex));

Además, en org.mockito.internal.matchers hay otros emparejamientos interesantes, como StartWith , Contains , etc.


Si agrega Hamcrest y JUnit4, podría hacer:

String x = "foo bar"; Assert.assertThat(x, CoreMatchers.containsString("foo"));

Con algunas importaciones estáticas, se ve mucho mejor:

assertThat(x, containsString("foo"));

Las importaciones estáticas necesarias serían:

import static org.junit.Assert.assertThat; import static org.hamcrest.CoreMatchers.containsString;


Usar hamcrest Matcher containsString()

// Hamcrest assertion assertThat(person.getName(), containsString("myName")); // Error Message java.lang.AssertionError: Expected: a string containing "myName" got: "some other name"

Opcionalmente, puede agregar un mensaje de error aún más detallado.

// Hamcrest assertion with custom error message assertThat("my error message", person.getName(), containsString("myName")); // Error Message java.lang.AssertionError: my error message Expected: a string containing "myName" got: "some other name"

Publiqué mi respuesta a una pregunta duplicada here


Use la nueva sintaxis assertThat junto con Hamcrest .

Está disponible comenzando con JUnit 4.4 .


use fest assert 2.0 siempre que sea posible EDIT: assertj puede tener más aserciones (un tenedor)

assertThat(x).contains("foo");