2009-01-21 3 views
0

J'ai conçu une petite classe de cas de test qui est conçue pour faciliter le moqueur (dans ce cas, avec JUnit 4 et EasyMock). Une partie de ceci est la vérification des mocks après que le test est terminé, de sorte que les simulacres sont vérifiés dans une méthode annotée avec @After. Cependant, s'il y a une défaillance dans la méthode de test elle-même, qui empêche le test de se terminer et que la vérification simulée échoue, la défaillance signalée par JUnit est l'échec de la vérification. Cependant, il serait plus utile si l'échec signalé était l'échec du test lui-même. Donc, y a-t-il un moyen dans JUnit de s'assurer que les erreurs/échecs dans la méthode de test sont toujours affichés de préférence aux erreurs/échecs survenant dans les méthodes annotées avec @After?JUnit: S'assurer que les échecs dans la méthode de test sont affichés avant les échecs dans les méthodes @After

Répondre

2

Généralement, l'annotation @After est l'équivalent de tearDown(), ce qui implique qu'elle doit uniquement effectuer un nettoyage de test, ne pas exécuter de tests ou faire des assertions.

j'aurais vos cas de test appellent votre méthode « vérifier » à la fin de chaque test au lieu d'avoir appeler JUnit pour vous

+0

Étant donné que de nombreux tests vérifieront que les attentes fictives ont été satisfaites, il est assez classique d'avoir ce code dans une méthode @After. En outre, vous pouvez avoir plusieurs méthodes @After, de sorte que vous pouvez avoir une vérification fictive et une démontage. Ne répétez pas si vous n'en avez pas besoin. – cynicalman

+0

@Après les méthodes ne sont pas destinées à des assertions, ils sont là pour le nettoyage. Est-ce que EasyMock n'a pas de coureur de test JUnit 4 (ou peut-être maintenant un @Rule) pour vous aider? –

0

ce qu'affirme ce que vous faites dans vos tests que la vérification dans @After est être signalé? S'il y a un échec d'assertion (ou si la méthode fail() est appelée), cela sera signalé, et la méthode after ne sera pas signalée. A quoi ressemble la méthode de test?

Questions connexes