Y a-t-il un moyen de mettre mes propres noms de cas de test personnalisée lorsque vous utilisez des tests paramétrés dans JUnit4 ?
Je voudrais changer la valeur par défaut — `` — à quelque chose de significatif.
Y a-t-il un moyen de mettre mes propres noms de cas de test personnalisée lorsque vous utilisez des tests paramétrés dans JUnit4 ?
Je voudrais changer la valeur par défaut — `` — à quelque chose de significatif.
Cette fonctionnalité a fait JUnit 4.11.
Pour changer le nom de paramétrées tests, vous dites:
@Parameters(name="namestring")
namestring
est une chaîne de caractères, qui peut avoir la spéciale suivante espaces réservés:
{index}
- l'indice de cet ensemble d'arguments. La valeur par défaut namestring
est {index}
.{0}
- le premier paramètre de la valeur de cette invocation de l'épreuve.{1}
- la deuxième valeur de paramètrePar exemple (à partir de l'unité de test pour l' Parameterized
d'annotation)
@RunWith(Parameterized.class)
static public class FibonacciTest {
@Parameters(name= "{index}: fib({0})={1}")
public static Iterable<Object[]> data() {
return Arrays.asList(new Object[][] { { 0, 0 }, { 1, 1 }, { 2, 1 },
{ 3, 2 }, { 4, 3 }, { 5, 5 }, { 6, 8 } });
}
private final int fInput;
private final int fExpected;
public FibonacciTest(int input, int expected) {
fInput= input;
fExpected= expected;
}
@Test
public void testFib() {
assertEquals(fExpected, fib(fInput));
}
private int fib(int x) {
// TODO: actually calculate Fibonacci numbers
return 0;
}
}
donnera des noms comme testFib[1: fib(1)=1]
et testFib[4: fib(4)=3]
. ( testFib
la partie du nom qui est le nom de la méthode de l' @Test
).
En regardant JUnit 4.5, son coureur clairement ne supporte pas que, tant que cette logique est enterré à l'intérieur d'un cours privé à l'intérieur de la classe Paramétrée. Vous ne pourriez pas utiliser JUnit Paramétrée coureur, et de créer votre propre place qui permettrait de comprendre le concept de noms (qui mène à la question de la façon dont vous pouvez définir un nom ...).
À partir d'un point de vue JUnit, ce serait bien si, au lieu de (ou en plus) de passage d'un échelon, ils allaient passer la virgule délimitée par des arguments. TestNG. Si la fonctionnalité est importante pour vous, vous pouvez commenter sur la liste de diffusion yahoo référencés à www.junit.org.
Je suis récemment tombé sur le même problème lors de l'utilisation de JUnit 4.3.1. J'ai mis en place une nouvelle classe qui s'étend Paramétrée appelé LabelledParameterized. Il a été testé en utilisant JUnit 4.3.1, 4.4 et 4.5. Il reconstruit la Description de l'instance à l'aide de la représentation de Chaîne du premier argument de chaque paramètre de tableau à partir de la @Paramètres de la méthode. Vous pouvez voir le code:
http://code.google.com/p/migen/source/browse/trunk/java/src/.../LabelledParameterized.java?r=3789
et un exemple de son utilisation:
http://code.google.com/p/migen/source/browse/trunk/java/src/.../ServerBuilderTest.java?r=3789
Le test de formats de description bien dans Eclipse, qui est ce que je voulais car cela rend l'échec des tests beaucoup plus facile à trouver! Je vais probablement l'affiner et de le documenter les classes au cours de la prochaine quelques jours/semaines. Déposer le '?' la partie de l'Url si vous voulez le bord de saignement. :-)
Pour l'utiliser, tout ce que vous avez à faire est de copier cette classe (GPL v3), et le changement annotation @RunWith(Parameterized.class) à l'annotation @RunWith(LabelledParameterized.class en supposant que le premier élément de votre liste de paramètres est un bon label.
Je ne sais pas si les versions ultérieures de JUnit répondre à cette question, mais même si ils l'ont fait, je ne peux pas mettre à jour JUnit depuis tous mes co-développeurs de mettre à jour aussi, et nous avons d'autres priorités que de la re-outillage. D'où le travail dans la classe pour être compilable par de multiples versions de JUnit.
Remarque: il y a une certaine réflexion jiggery-pokery afin qu'elle s'exécute à travers les différents JUnit versions mentionnées ci-dessus. La version spécifiquement pour JUnit 4.3.1 peut être trouvé ici, et, pour JUnit 4.4 et 4.5, ici.
Avec comme un modèle, j’ai écrit mon propre test personnalisé runner / suite--a seulement pris environ une demi-heure. C’est un peu différent de michelp
en ce qu’il vous permet de spécifier un nom explicitement plutôt que de compter sur le premier paramètre `` .
Aussi, il n’utilise pas les tableaux parce que je déteste les tableaux. :)
Et un exemple :
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.