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.

Était-ce utile?

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 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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top