Notre boîte à outils compte plus de 15 000 JUnit et de nombreux tests sont connus pour échouer si un autre test échoue. Par exemple, si la méthode X.foo() utilise la fonctionnalité de Y.bar() et que YTest.testBar() échoue, alors XTest.testFoo() échouera également. Évidemment, XTest.testFoo() peut aussi échouer à cause de problèmes spécifiques à X.foo().
Bien que ce soit bien et que je veuille toujours que les deux tests soient exécutés, il serait agréable de pouvoir annoter une dépendance de test avec XTest.testFoo() pointant vers YTest.testBar(). De cette façon, on pourrait voir immédiatement quelle fonctionnalité utilisée par X.foo() échoue également, et quoi d'autre.
Une telle annotation est-elle disponible dans JUnit ou ailleurs ? Quelque chose comme :
public XTest {
@Test
@DependsOn(method=org.example.tests.YTest#testBar)
public void testFoo() {
// Assert.something();
}
}
0 votes
C'est une vieille rengaine, cependant : si X.foo() utilise Y.bar(), le test doit( !) simuler Y.bar(), sinon votre test n'est pas un test unitaire (mais un test d'intégration). L'idée générale des tests unitaires est de ne pas avoir de dépendances. Cependant, je suis ici pour une raison ;-)