Tengo múltiples casos de prueba incluso y si la lógica es diferente, la salida debe ser igual en todos ellos. Así que estaba pensando en cómo generalizarlos y colocar el método Assert una sola vez.¿Es incorrecto afirmarse en el método tearDown (@After)?
¿Hay alguna forma mejor de hacerlo que éste:
static public class Tests() {
private static String expected = null;
private String actual = null;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
expected = new String("My Desired Output");
}
@Before
public void setUp() {
actual = new String();
}
@Test
public void test1() throws Exception {
actual = ...
}
@Test
public void test2() throws Exception {
actual = ...
}
@After
public void tearDown() throws Exception {
assertThat(actual, is(equalTo(expected)));
}
@AfterClass
public static void tearDownAfterClass() {
}
}
método Duración:
@Test
public void runTests() {
Result result = JUnitCore.runClasses(Tests.class);
assertThat(result.getRunCount(), is(2));
assertThat(result.getFailureCount(), is(0));
}
La clase que estoy probando es una especie de clase de generador, por lo que puedo crear mi salida utilizando diferentes métodos. Al hacer estas pruebas, puedo asegurar que todos mis métodos están funcionando y que la salida se genera correctamente. Ya detecté un error en uno de mis métodos. – Alexander
Además, usar estática en tu prueba es una mala idea. – emory
@emory, ¿quiere decir afirmar contra una variable estática o usar métodos estáticos o ambos? – Alexander