2010-06-12 4 views
8

J'éprouve quelques difficultés à utiliser JUnit 4.5 dans Eclipse, quand j'utilise @Before l'annotation ne fait rien (je peux utiliser setUp() qui fonctionne bien sûr, mais je me demande juste est faux), alors que cela fonctionne parfaitement dans Netbeans .. Des pensées?Problème d'annotation Eclipse JUnit @Before

+1

Publier un exemple de test pour que nous puissions regarder – skaffman

+4

Vous étendez TestCase? Si oui, je pense qu'il ignore les annotations. – Pace

+0

avez-vous spécifié le bon pot pour votre projet? – Aif

Répondre

2

Si vous utilisez JUnit 4, vous pouvez simplement annoter la classe de test ou la méthode de test avec l'annotation @Test au lieu d'étendre TestCase.

+0

Il pose des questions sur l'annotation @Before, il ne dit rien sur les tests qui échouent à s'exécuter. –

+0

Même si cela est correct, cela ne répond pas à la question posée par OP. –

4

Parce que je cam ici via une recherche Google, et a dû creuser tout à fait un peu plus profond pour voir la solution réelle: Comme @Pace dit dans les commentaires, si vous extend TestCase, Eclipse traite le test comme JUnit version 3 ou plus et ne respecte pas l'annotation @Before - aussi descripred ici: JUnit + Maven + Eclipse: Why @BeforeClass does not work?

par conséquent, la suppression des extend TestCase cause résout le problème

2

Puisque vous utilisez JUnit 4+ il y a deux façons d'écrire un test

1> Vous faites votre classe de test extend TestCase. Dans ce cas, les classes correspondant à Junit 3 sont récupérées et ne connaissent pas l'annotation @Before. Dans ce cas, vous devrez remplacer

/** 
* Sets up the fixture, for example, open a network connection. 
* This method is called before a test is executed. 
*/ 
protected void setUp() throws Exception { 
} 

2> utiliser les annotations. utilisez l'annotation @Test pour la méthode de la classe de test que vous souhaitez exécuter en tant que test. Vous n'avez pas besoin de votre classe pour extend TestCase. De plus, vous n'avez pas besoin de surcharger une méthode. Définissez simplement votre propre méthode qui a la logique à exécuter avant l'exécution de la méthode de test et annotez-la avec l'annotation @Before.

Questions connexes