J'essaie d'utiliser des junitparams afin de paramétrer mes tests. Mais mon problème principal est que les paramètres soient des chaînes avec des caractères spéciaux, un tilde ou un tuyau. avec tilde, je n'ai aucun problème.
Mais avec pipe, j'ai une exception: p> Le tuyau, comme la virgule, est utilisée comme séparateur pour les paramètres. P> y a-t-il de moyen Pour moi de définir un séparateur différent?
Ou est-ce une limitation des junitparams? P> p>
3 Réponses :
Vous pouvez vérifier Zohhak . Il est similaire aux paramètres junit mais vous donne beaucoup plus de flexibilité autour des paramètres d'analyse. On dirait que cela peut contribuer de manière significative à traiter des paramètres «difficiles à lire». Exemples de la DOCS:
@TestWith(value="7 | 19, 23", separator="[\\|,]") public void mixedSeparators(int i, int j, int k) { assertThat(i).isEqualTo(7); assertThat(j).isEqualTo(19); assertThat(k).isEqualTo(23); } @TestWith(value=" 7 = 7 > 5 => true", separator="=>") public void multiCharSeparator(String string, boolean bool) { assertThat(string).isEqualTo("7 = 7 > 5"); assertThat(bool).isTrue(); }
Je n'ai pas trouvé de possibilité de configurer les caractères de séparation, mais ces caractères n'ont pas besoin d'être échappés si vous fournissez vos données dans un objet Considérons les suivants Exemple: P> [] [] [] code>.
public static Object[][] provideParameters() {
return new Object[][] {
new Object[] {"A,B|C"}
};
}
Vous pouvez en effet échapper au tuyau avec double back-backslashes:
Vous pouvez travailler en utilisant Syntaxe
Je voudrais également essayer d'échapper au tuyau avec "\\", voir cet échantillon
J'ai essayé cette syntaxe, ne fonctionne toujours pas. Maintenant, j'utilise paramétré à la place des junitparams. Cela fonctionne, mais l'argument est pour toute la junitclass (alors j'ai dû créer une nouvelle classe). Les travaux. Mais parce que mes paramètres sont difficiles à lire (pleins de | et ~ et d'autres caractères spéciaux), je préférerais ne pas ajouter beaucoup de caractère d'échappement dans mes ensembles d'entrée. Mais oui, ça marche.