J'utilise actuellement le code suivant pour affirmer une valeur boolean
, mais la méthode org.hamcrest.Matchers.is()
est déconseillée.
assertThat(someValue, is(false));
Existe-t-il une syntaxe alternative simple pour tester les valeurs booléennes sans recourir à assertTrue()
qui vous donne de mauvais messages d'échec comme "Java.lang.AssertionError"
Modifier après avoir reçu des commentaires/réponses
Mes préoccupations initiales ont été soulevées car Eclipse affiche la déclaration d'importation suivante comme obsolète
Lors de l'affichage de la documentation API Hamcrest , il existe 3 variantes surchargées de la méthode is()
, dont une seule est déconseillée.
Par conséquent, pour clarifier le commentaire de @mark et la réponse de @matt, l'utilisation de is()
que j'ai posté ci-dessus est valide et non déconseillée.
Avez-vous essayé equalTo(T)
?
assertThat(someValue, equalTo(false));
Je ne vois pas que is(T)
est obsolète - is (Class) est obsolète d cependant.
J'avais pensé que c'était un problème de dépendance transitive, mais c'est vraiment juste un problème d'affichage dans Eclipse où il marque l'importation comme obsolète car un formulaire surchargé l'est. Le code devrait compiler correctement puisque l'importation exposera tous les formulaires.
Le formulaire obsolète a été supprimé de la source et n'existera pas dans la prochaine version (1.4).
Réponse originale
Le problème est que JUnit inclut un ensemble de classes Hamcrest dans son JAR . Vous pouvez utiliser junit-dep.jar
pour l'instant, mais les versions plus récentes (4.9 et 4.10 jusqu'à présent) de JUnit les omettent.
Il est dit, utilisez instanceOf
pour la correspondance de classe dans le document.
http://junit.org/javadoc/latest/org/hamcrest/core/Is.html#isA (Java.lang.Class)
is(IOException.class);
sera
is(instanceOf(IOException.class));
par exemple.