Junit Assumptions
Junit: Assumptions
Las suposiciones (assumptions) se utilizan típicamente cuando no tiene sentido continuar con la ejecución de una prueba determinada; por ejemplo, si la prueba depende de algo que no existe en el entorno de ejecución actual.
Cuando una suposición es válida, el método de suposición no lanza una excepción y la ejecución de la prueba continúa con normalidad.
Cuando una suposición es inválida, el método de suposición lanza una excepción del tipo org.opentest4j.TestAbortedException para señalar que la prueba debe abortarse en lugar de marcarse como un fallo.
JUnit Jupiter incluye un subconjunto de los métodos de suposición que ofrece JUnit 4, y además añade algunos que se adaptan bien al uso con expresiones lambda de Java 8 y referencias a métodos.
Todas las suposiciones de JUnit Jupiter son métodos estáticos en la clase org.junit.jupiter.api.Assumptions.
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assumptions.assumeTrue;
import static org.junit.jupiter.api.Assumptions.assumingThat;
import example.util.Calculator;
import org.junit.jupiter.api.Test;
class AssumptionsDemo {
private final Calculator calculator = new Calculator();
@Test
void testOnlyOnCiServer() {
assumeTrue("CI".equals(System.getenv("ENV")));
// remainder of test
}
@Test
void testOnlyOnDeveloperWorkstation() {
assumeTrue("DEV".equals(System.getenv("ENV")),
() -> "Aborting test: not on developer workstation");
// remainder of test
}
@Test
void testInAllEnvironments() {
assumingThat("CI".equals(System.getenv("ENV")),
() -> {
// perform these assertions only on the CI server
assertEquals(2, calculator.divide(4, 2));
});
// perform these assertions in all environments
assertEquals(42, calculator.multiply(6, 7));
}
}
❕❕ It is also possible to use methods from JUnit 4’s
org.junit.Assumeclass for assumptions. Specifically, JUnit Jupiter supports JUnit 4’sAssumptionViolatedExceptionto signal that a test should be aborted instead of marked as a failure