2011-04-04 4 views
2

J'écris une suite de tests JUnit 4 qui exécute des tests qui vérifient si une exception a été levée. À eux seuls, mes tests ressemblent un peu à ceci:Comment créer une suite de tests JUnit 4 pour passer lorsque les exceptions attendues sont levées

@RunWith(value=BlockJUnit4ClassRunner.class) 
public class CreateCommandsExceptionsTest extends TestCase { 
    Statistics statistics; 
    @Before 
    public void setUp(){ 
     ... 
    } 
     ... 
    @Test (expected=StatsArrayTooShortException.class) 
    public void testStatsArrayTooShortException(){ 
     ... 
    } 

Les tests fonctionnent très bien eux-mêmes, mais quand je tente de les mettre dans une suite de tests, ils échouent parce que l'exception que je teste pour est d'être jeté.

Ma suite de tests ressemble:

@RunWith(value=BlockJUnit4ClassRunner.class) 
public class UnitTestSuite { 
public static testSuite(){ 
    TestSuite suite = new TestSuite("Test for unitTests"); 

    suite.addTestSuite(StatisticsTest.class); 
    ... 
    return suite; 
} 
} 

Si quelqu'un pouvait me dire comment je devrais être en train de créer ma suite de test afin que je puisse passer un test quand je surprends une exception attendue, je vous en serais reconnaissant.

Répondre

3

Vous utilisez la mauvaise syntaxe des Suites à Junit 4.

Ceci est la bonne façon:

@RunWith(Suite.class) 
@Suite.SuiteClasses({ 
     JunitTest1.class, 
     JunitTest2.class 
}) 
public class JunitTest5 { 
} 
+0

qui fonctionne! Je vous remercie! Pourriez-vous recommander une bonne documentation pour JUnit? Je ne peux pas trouver aucun – Jennifer

+0

http://junit.sourceforge.net/ - junit4 cookbook http://junit.org - site principal pour junit – oers

Questions connexes