2010-03-17 6 views
4

J'ai deux tests pour vérifier le lancement de l'exception attendue. J'utilise Junit 4 et a la syntaxe suivante. L'un des tests échoue même si IllegalArgumentException est levé et l'autre passe. Une idée qui manque? J'ai modifié le test qui ne suit pas et ça passe.Test d'exception Junit

public void testSomething(){ 
try{ 
    ............ //line that throws exception 
    fail(); 
}catch(IllegalArgumentException e) { 
} 
} 

Répondre

7

Prithis juste quelque chose J'ai remarqué que le second test n'a pas d'annotation @Test. JUNIT4 n'exécute pas de tests qui ne sont pas annotés même si les noms de méthodes commencent par test *** (sauf si vous étendez réellement la classe TestCase, auquel cas il se comporte comme un testcase JUNIT3.x)

Peut-être cas que le test ne fonctionne pas du tout (et donc vous fait penser qu'il passe)?

+1

Calme bien taché. Oui, j'ai étendu TestCase et je n'ai pas eu @test. J'essayais de mélanger junit 3 et 4. Son fonctionne maintenant. J'ai dû importer static org.junit.Assert. *; pas étendre testCase et ajouter @test – Prithis