Plusieurs tests JUnit en utilisant FEST
Question
J'ai écrit plusieurs méthodes de test JUnit pour tester mon GUI Java Swing (en utilisant FEST ). Ma classe est dans le format suivant:
public class Tests
{
@BeforeClass
public static void beforeClass() throws Exception { ... }
@Before
public void before() throws Exception { ... }
@After
public void after() throws Exception { ... }
@AfterClass
public static void afterClass() throws Exception { ... }
@Test
public void testA() { ... }
@Test
public void testB() { ... }
@Test
public void testC() { ... }
}
Quand je lance cette classe dans Eclipse, il ne fonctionne que le test de TESTA, et non TESTB ou TestC. Si je remarque sur TESTA, TESTB court - il semble fonctionner juste le premier test à chaque fois
.JUnit de runs: 2/3 »montre Eclipse. Après avoir terminé le premier test, mais ne progresse pas plus loin, ou afficher des erreurs
Y at-il quelque chose que je fais mal? Je JUnit 4.8.1 et 1.2 FEST.
La solution
Je soupçonne que vous avez un effet secondaire dans testA
qui bloque le code testB
de courir. Il est difficile de dire ce qui se passe sans que les détails dans testA
et testB
, mais je peux vous donner quelques indications générales.
Vous êtes à un bon départ en commentant testA
. Lorsque vous faites cela, faire à la fois courir testB
et testC
?
Essayez le forage vers le bas dans testA
et commenter lentement les détails dans ce qui est en dessous testA
jusqu'à ce que vous exécutez des tests à la fois testA
et testB
. Une fois que vous avez fait cela, vous au moins savoir où le problème.
Par exemple, si vous regarde de code quelque chose comme:
public void testA() {
doX();
doY();
doZ();
// Assert stuff
...
}
tout mettre en commentaire après doX()
et de voir ce qui se passe. Si cela fonctionne, uncomment doY()
et de voir ce qui se passe. Si cela n'a pas fonctionné, puis percer vers le bas dans doX()
et commencer à en commentaire et de refaire vos tests.
Cela devrait vous aider à repérer les détails de l'endroit où les choses vont mal. Si vous êtes toujours perplexe quand vous comprendre cela, revenir et poser une question autour de ces détails.
Bonne chance pour trouver votre bug!
Autres conseils
Semble extrait de code est OK.
Vous pouvez vérifier si chaque méthode @Test est indépendant pour d'autres, chaque méthode d'essai ne doit pas partager un même contexte. Assurez-vous @Before
et @After
ont des comportements corrects.