J'ai le code suivant:
@BeforeClass
public static void setUpOnce() throws InterruptedException {
fail("LOL");
}
Et diverses autres méthodes, à savoir les méthodes @Avant, @After, @Test ou @AfterClass.
Le test n'échoue pas au démarrage car il semble que ce devrait être le cas. Quelqu'un peut m'aider s'il vous plaît?
J'ai JUnit 4.5
La méthode échoue dans un appel immédiat à setUp () annoté avec @before. La classe def est:
public class myTests extends TestCase {
nE PAS étendre TestCase ET utiliser des annotations en même temps!
Si vous devez créer une suite de tests avec des annotations, utilisez l'annotation RunWith comme suit:
@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
...
(par convention: noms de classe avec lettre majuscule)
la méthode doit être statique et ne pas directement appeler fail (sinon les autres méthodes ne seront pas exécutées).
La classe suivante affiche tous les types de méthode JUnit 4 standard:
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");
}
}
et la sortie est (sans surprise):
@BeforeClass
@Before
@Test
@After
@AfterClass
Sois sûr que :
Pour que la fonction annotée précédente soit exécutée, je devais procéder comme suit: Si vous utilisez Maven, ajoutez une dépendance à 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>
et la dépendance:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${version.junit}</version>
<scope>test</scope>
</dependency>
.
.
.
</dependencies>
Assurez-vous que votre classe Junit Test n'étend pas la classe TestCase, car cela entraînerait un chevauchement avec l'ancienne version:
public class TuxedoExceptionMapperTest{
protected TuxedoExceptionMapper subject;
@Before
public void before() throws Exception {
subject = TuxedoExceptionMapper.getInstance();
System.out.println("Start");
MockitoAnnotations.initMocks(this);
}
}