unitarias unitaria una tutorial test será qué que pruebas prueba método instalar indica hacer español ejemplos como anotación java junit annotations

java - unitaria - ¿Por qué no se está ejecutando mi método @BeforeClass?



qué anotación indica que un método será una prueba (4)

Tengo el siguiente código:

@BeforeClass public static void setUpOnce() throws InterruptedException { fail("LOL"); }

Y varios otros métodos que son @Before, @After, @Test o @AfterClass métodos.

La prueba no falla al iniciarse, ya que parece que debería. ¿Puede alguien ayudarme por favor?

Tengo JUnit 4.5

El método está fallando en una llamada inmediata a setUp () que está anotado como @before. La definición de clase es:

public class myTests extends TestCase {


¡NO extienda TestCase Y use anotaciones al mismo tiempo!
Si necesita crear un conjunto de pruebas con anotaciones, use la anotación RunWith como:

@RunWith(Suite.class) @Suite.SuiteClasses({ MyTests.class, OtherTest.class }) public class AllTests { // empty } public class MyTests { // no extends here @BeforeClass public static void setUpOnce() throws InterruptedException { ... @Test ...

(por convención: nombres de clase con letra mayúscula)


Asegúrate de eso :

  • Su clase de prueba no hereda de TestCase
  • El método @BeforeClass es estático
  • No tiene más de un método @BeforeClass en la jerarquía de clases de prueba (solo se ejecutará el método @BeforeClass más especializado)

Para que se ejecute la función anotada anteriormente, tuve que hacer lo siguiente: Si usa Maven, agregue una dependencia a Junit 4.11+:

<properties> <version.java>1.7</version.java> <version.log4j>1.2.13</version.log4j> <version.mockito>1.9.0</version.mockito> <version.power-mockito>1.4.12</version.power-mockito> <version.junit>4.11</version.junit> <version.power-mockito>1.4.12</version.power-mockito> </properties>

y la dependencia:

<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${version.junit}</version> <scope>test</scope> </dependency> . . . </dependencies>

Asegúrese de que su clase Junit Test no extienda la clase TestCase, ya que esto causará la superposición con la versión anterior:

public class TuxedoExceptionMapperTest{ protected TuxedoExceptionMapper subject; @Before public void before() throws Exception { subject = TuxedoExceptionMapper.getInstance(); System.out.println("Start"); MockitoAnnotations.initMocks(this); } }


el método debe ser estático y no invocar directamente al error (de lo contrario, los demás métodos no se ejecutarán).

La siguiente clase muestra todos los tipos de métodos estándar JUnit 4:

public class Sample { @BeforeClass public static void beforeClass() { System.out.println("@BeforeClass"); } @Before public void before() { System.out.println("@Before"); } @Test public void test() { System.out.println("@Test"); } @After public void after() { System.out.println("@After"); } @AfterClass public static void afterClass() { System.out.println("@AfterClass"); } }

y la salida es (no sorprendentemente):

@BeforeClass @Before @Test @After @AfterClass