78 votes

Exécutant le même cas de test JUnit plusieurs fois avec des données différentes

Existe t-il un moyen de dire à JUnit pour exécuter un test spécifique de cas plusieurs fois avec des données en continu avant de passer au test suivant?

66voto

dfa Points 54490

jetez un oeil à junit 4.4 théories:

import org.junit.Test;
import org.junit.experimental.theories.*;
import org.junit.runner.RunWith;

@RunWith(Theories.class)
public class PrimeTest {

    @Theory
    public void isPrime(int candidate) {
          // called with candidate=1, candidate=2, etc etc  
    }

    public static @DataPoints int[] candidates = {1, 2, 3, 4, 5};
}

24voto

jjnguy Points 62123

Ça sonne comme ça, c'est un candidat parfait pour les tests paramétrés.

Mais, fondamentalement, paramétrées, les tests vous permettent d'exécuter la même série de tests sur des données différentes.

Voici quelques bons messages de blog à ce sujet:

12voto

piotrek Points 2230

récemment, j'ai commencé à zohhak projet. il vous permet d'écrire:

@TestWith({
   "25 USD, 7",
   "38 GBP, 2",
   "null,   0"
})
public void testMethod(Money money, int anotherParameter) {
   ...
}

3voto

Kreich Points 96

Voici un post que j'ai écrit qui présente plusieurs façons d'exécuter les tests à plusieurs reprises avec des exemples de code:

Exécuter un test JUnit à plusieurs reprises

Vous pouvez utiliser le @Paramétrées coureur, ou utiliser le coureur inclus dans le poste

2voto

J'ai toujours tout faire une méthode d'assistance que s'exécute le test basé sur les paramètres, et ensuite appeler cette méthode à partir de la méthode de test JUnit. Normalement, cela signifierait une seule méthode de test JUnit aurait fait exécuter de nombreux tests, mais ce n'était pas un problème pour moi. Si vous vouliez plusieurs méthodes de test, un pour chaque invocation, je vous recommande la génération de la classe de test.

Prograide.com

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.

Powered by:

X