J'essaie d'ajouter des tests paramétrés dans mon Java. J'ai trouvé les exemples pour JUnit 5, que j'ai inclus.
https://blog.codefx.org/libraries/junit-5-parameterized-tests/
Le problème est que je ne peux pas ajouter @ParameterizedTest car l'espace de noms est manquant. Idk pourquoi ou comment.
La page documentation indique clairement qu'elle se trouve dans org.junit.jupiter.params, mais je ne l'ai pas.
Pour vous donner une idée de mon code:
import org.junit.jupiter.api.Test;
import Java.util.Arrays;
import Java.util.Collection;
import static org.junit.jupiter.api.Assertions.*;
class SubsetPrinterTest
{
// https://blog.codefx.org/libraries/junit-5-parameterized-tests/
static Collection<Object[]> makeSetData()
{
return Arrays.asList(new Object[][]
{
{1, new char[]{'1'}},
{2, new char[]{'1', '2'}},
{3, new char[]{'1', '2', '3'}},
{4, new char[]{'1', '2', '3', '4'}},
{5, new char[]{'1', '2', '3', '4', '5'}}
});
}
// This should be a parameterized test using the makeSetData.
@Test
void makeSet()
{
// Arrange
SubsetPrinter subsetPrinter = new SubsetPrinter();
// Act
char[] set = SubsetPrinter.MakeSet(5);
// Assert
assertArrayEquals(set, new char[]{'1', '2', '3', '4', '5'});
assertEquals(set.length, 5);
}
}
Votre projet class-path doit inclure une version de junit-jupiter-params-xxx.jar
, comme junit-jupiter-params-5.0.0.jar
de http://central.maven.org/maven2/org/junit/jupiter/junit-jupiter-params/5.0.0/
Le billet de blog de codefx.org
vous liez à dit (modifié vers la version 5.0.0 actuelle):
Commencer avec des tests paramétrés est assez facile mais avant que le plaisir ne commence, vous devez ajouter la dépendance suivante à votre projet:
Group ID: org.junit.jupiter Artifact ID: junit-jupiter-params Version: 5.0.0
Soit le télécharger et l'ajouter manuellement, ou si vous utilisez un outil de build avec gestion des dépendances (Gradle, Maven, ...) configurez le script de build (build.gradle, pom.xml, ...) en conséquence.
Trouvez quelques exemples génériques ici: https://github.com/junit-team/junit5-samples
À partir de la version 5.4.0-M1 JUnit Jupiter fournit un artefact agrégateur qui regroupe tous les artefacts définissant Jupiter disponibles pour une consommation facile. Voir https://sormuras.github.io/blog/2018-12-26-junit-jupiter-aggregator.html pour plus de détails.
Ajoutez la dépendance suivante dans pom.xml. jupiter API [Junit 5] aborde les modules comme des plugins, chacun doit être délibérément ajouté,
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
Plus d'informations sur: https://mvnrepository.com/artifact/org.junit.jupiter