testwith test java junit parameterized

java - test - Suites multicapa parametrizadas



junit testwith (1)

Aquí está mi solución actual (ingenua) a este problema:

Dentro de BaseTest :

@Test public void testNewline() { WhitespaceTest wt = new WhitespaceTest(expected, actual); wt.testNewline(); }

Esto funciona, pero hay un montón de código duplicado. Para cada @Test en WhitespaceTest , debe crear otro @Test en BaseTest .

Actualmente tengo una clase abstracta de BaseTest que contiene varios @Test genéricos.

public abstract class BaseTest { private String expected; private String actual; public BaseTest(String expected, String actual) { this.expected = expected; this.actual = actual; } public String methodToTest(String line) { return line.trim(); } @Test public void testNull() { assertNull(methodToTest(null)); } // more @Tests... }

SomeTest extiende BaseTest , donde defino varios casos de prueba.

@RunWith(Parallelized.class) public class SomeTest extends BaseTest { // @Parameters (test cases) goes here... }

Tengo muchas pruebas que amplían BaseTest , que luego pongo en una Suite en RunAllTests .

@RunWith(Suite.class) @SuiteClasses({ SomeTest.class, AnotherTest.class, etc... }) public class RunAllTests { }

Entonces, digamos que quiero agregar más @Test ''s, sin embargo, quiero @Test en una clase diferente.

public class WhitespaceTest extends BaseTest { public WhitespaceTest(String expected, String actual) { super(expected, actual); } @Test public void testNewline() { assertEquals(expected, methodToTest(actual + "/n")); } // more @Tests... }

Parece que necesito otra "capa" de Suites para ejecutar cada prueba, de modo que para cada clase en RunAllTests , ejecuto BaseTest AND WhitespaceTest . ¿Cómo hago para implementar esta capa?