L'autre jour, quand j'ai essayé d'utiliser JUnit 5 tard, affirmer que c'était parti. Il semble que la politique consiste à utiliser ce que l'utilisateur aime pour l'assertion.
Donc, à propos de la méthode de vérification utilisée dans JUnit Considérons les candidats à l'utilisation, y compris ceux qui ont été utilisés jusqu'à présent. org.junit.Assert.assertEquals Méthode traditionnelle. J'ai été pris en charge lorsque j'étais un nouvel employé. Il n'est pas beaucoup utilisé maintenant parce qu'il a assertThat (devrait).
@Test
public void test01() {
int sum = add(30, 70);
assertEquals(100, sum);
}
java.lang.AssertionError: expected:<0> but was:<100>
</dd>
<dt> Seul le jugement de correspondance peut être pris en charge </ dt>
Le nom de la méthode <dd> est égal, donc ce n'est que naturel. <br> Dans les cas autres que le jugement de match, assertTrue, qui sera décrit plus loin, doit être utilisé. </ dd> </ dl>
org.junit.Assert.assertTrue
Une méthode traditionnelle comme assertEquals. Cela a également été pris en charge lorsque j'étais un nouvel employé.
Puisqu'il prend un booléen comme argument, il est courant de transmettre une expression de comparaison ou une méthode de jugement qui renvoie un booléen pour vérification.
```java
@Test
public void test02() {
int sum = add(30, 70);
assertTrue(sum > 50);
}
org.junit.Assert.assertThat Introduit à partir de JUnit 4. C'était courant dans JUnit 4. Validez en passant la valeur mesurée comme premier argument et org.hamcrest.Matcher comme deuxième argument. Soyez prudent car les valeurs mesurées et attendues sont à l'opposé d'assert Equals.
Presque toutes les vérifications devraient être possibles avec cette affirmation, car une multitude de Matchers sont fournis. L'article suivant était très facile à comprendre sur l'utilisation de Matcher, je vais donc le présenter.
■ Comment utiliser la méthode définie dans Matchers of Hamcrest https://qiita.com/opengl-8080/items/e57dab6e1fa5940850a3
@Test
public void test04() {
int sum = add(30, 70);
assertThat(sum, is(100));
}
@Test
public void test05() {
String userName = "Yamada Taro";
assertThat(userName, containsString("Ta"));
}
org.assertj.core.api.Assertions.assertThat Personnellement, ma préférée en ce moment. Je voudrais l'utiliser si je commence à implémenter JUnit à partir de maintenant. La grande différence par rapport à l'assertThat de JUnit est que l'argument n'est que la valeur mesurée et que la vérification de la valeur attendue après cela peut être effectuée dans la chaîne de méthodes.
@Test
public void test01() {
String userName = "Suzuki Jiro";
assertThat(userName).contains("Ji");
}
@Test
public void test02() {
int sum = add(30, 70);
assertThat(sum).isGreaterThan(50);
}
Je vais vous présenter la méthode de vérification d'AssertJ car cet article était bien organisé et facile à comprendre.
■ Version Assert J: liste des méthodes de vérification souvent utilisées dans les tests https://qiita.com/naotawool/items/6512ecbe2fd006dacfd2
com.google.truth.Truth.assertThat Une bibliothèque d'assertions fournie par Google. Bien qu'officiellement vanté, il est très similaire à AssertJ et vous permet de faire des affirmations avec une interface fluide. Si c'est similaire à cela, je pense qu'AssertJ va bien, mais Truth fournit une méthode nommée qui nomme la valeur mesurée, et il semble que cela puisse être reflété dans le message d'erreur. Il semble y avoir d'autres éléments uniques, mais ils n'ont pas été étudiés ... Je vais tenter ma chance quelque part et la comparer avec AssertJ.
@Test
public void test01() {
String userName = "Suzuki Jiro";
assertThat(userName).named("userName").contains("Ji");
}
@Test
public void test02() {
int sum = add(30, 70);
assertThat(sum).named("sum").isEqualTo(100);
}
Donc, pour le moment, je vais utiliser l'assertThat d'AssertJ comme méthode de validation. AssertJ a également une bibliothèque appelée AssertJ-DB pour les tests DB, je voudrais donc essayer ceci aussi à l'avenir.
Recommended Posts