java - test - ¿Cómo afirmar algo más que usar JUnit Assert?
junit tutorial español (6)
Cómo lo has hecho. assertTrue(boolean)
también tiene una sobrecarga assertTrue(String, boolean)
donde la String
es el mensaje en caso de error; puede usarlo si desea imprimir que tal y tal no fue mayor que tal y tal.
También puede agregar hamcrest-all
como una dependencia para usar los mezcladores. Ver https://code.google.com/p/hamcrest/wiki/Tutorial :
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
assertThat("timestamp",
Long.parseLong(previousTokenValues[1]),
greaterThan(Long.parseLong(currentTokenValues[1])));
Eso da un error como:
java.lang.AssertionError: timestamp
Expected: a value greater than <456L>
but: <123L> was less than <456L>
Tengo estos valores procedentes de una prueba
previousTokenValues[1] = "1378994409108"
currentTokenValues[1] = "1378994416509"
y yo trato
// current timestamp is greater
assertTrue(Long.parseLong(previousTokenValues[1]) > Long.parseLong(currentTokenValues[1]));
Obtengo java.lang.AssertionError
y detailMessage
en la depuración es null
.
¿Cómo puedo afirmar condiciones mayores que usando JUnit
Cuando uso JUnit afirma, siempre hago el mensaje agradable y claro. Se ahorra una gran cantidad de depuración de tiempo. Haciéndolo de esta manera evita tener que agregar una dependencia añadida en Hamcrest Matchers.
previousTokenValues[1] = "1378994409108";
currentTokenValues[1] = "1378994416509";
Long prev = Long.parseLong(previousTokenValues[1]);
Long curr = Long.parseLong(currentTokenValues[1]);
assertTrue("Previous (" + prev + ") should be greater than current (" + curr + ")", prev > curr);
Debe agregar Hamcrest-library a su ruta de compilación. Contiene la clase Matchers.class que tiene el método lessThan ().
Dependencia como abajo.
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<version>1.3</version>
</dependency>
Puedes ponerlo así
assertTrue("your fail message ",Long.parseLong(previousTokenValues[1]) > Long.parseLong(currentTokenValues[1]));
también puedes probar debajo de una simple solución:
previousTokenValues[1] = "1378994409108";
currentTokenValues[1] = "1378994416509";
Long prev = Long.parseLong(previousTokenValues[1]);
Long curr = Long.parseLong(currentTokenValues[1]);
Assert.assertTrue(prev > curr );
assertTrue("your message", previousTokenValues[1].compareTo(currentTokenValues[1]) > 0)
esto pasa por valores> anteriores