Table of Contents
ToggleTesting with AssertJ String in Java
提供驗證字串條件判斷等方法,編寫的測試程式使用流暢的斷言語句,通常與 JUnit 測試一起使用, AssertJ 斷言的基本方法是 assertThat 方法,使用 Testing Java AssertJ String 流式斷言,本篇增加了範例,並透過單元測試來驗證產出結果。
檔案目錄
./
+- src
+- test
| +- org
| +- ruoxue
| +- spring_boot_168
| +- test
| +- assertj
| +- string
| +- TestingAssertJStringTest.java
單元測試
Java AssertJ String Testing 斷言字串的主要目的是取得字串以進行斷言。
isLessThan
驗證字串是否小於指定值,若不成立,則會拋出 AssertionError 。
@Test
// A=65, a=97
public void isLessThan() {
String value = "AssertJ 155";
System.out.println(value);
assertThat(value).isLessThan("as").isLessThan("bs");
assertThat(value).isLessThan("aS").isLessThan("At");
}
AssertJ 155
isLessThanOrEqualTo
Java AssertJ String Testing 驗證字串是否小於或等於指定值,若不成立,則會拋出 AssertionError 。
@Test
// A=65, a=97
public void isLessThanOrEqualTo() {
String value = "AssertJ 155";
System.out.println(value);
assertThat(value).isLessThanOrEqualTo("AssertJ 155").isLessThanOrEqualTo("bs");
assertThat(value).isLessThanOrEqualTo("assertj 155").isLessThanOrEqualTo("At");
}
AssertJ 155
isGreaterThan
Java AssertJ String Testing 驗證字串是否大於指定值,若不成立,則會拋出 AssertionError 。
@Test
// A=65, a=97
public void isGreaterThan() {
String value = "assertj 155";
System.out.println(value);
assertThat(value).isGreaterThan("As").isGreaterThan("Bs");
assertThat(value).isGreaterThan("aS").isGreaterThan("aT");
}
assertJ 155
isGreaterThanOrEqualTo
Java AssertJ String Testing 驗證字串是否大於或等於指定值,若不成立,則會拋出 AssertionError 。
@Test
// A=65, a=97
public void isGreaterThanOrEqualTo() {
String value = "assertj 155";
System.out.println(value);
assertThat(value).isGreaterThanOrEqualTo("AssertJ 155").isGreaterThanOrEqualTo("Bs");
assertThat(value).isGreaterThanOrEqualTo("assertj 155").isGreaterThanOrEqualTo("aT");
}
assertJ 155
usingDefaultComparator
Java Testing AssertJ String 使用預設比較器,驗證字串是否符合條件判斷,若不成立,則會拋出 AssertionError 。
@Test
public void usingDefaultComparator() {
String value = "AssertJ 155";
System.out.println(value);
assertThat(value).usingDefaultComparator().contains("AssertJ", "155").doesNotContain("rtJx");
value = "AssertJ";
assertThat(value).usingDefaultComparator().startsWith("Ass").endsWith("rtJ");
}
AssertJ 155
AssertJ
usingComparator
Java Testing AssertJ String 使用自定義比較器,驗證字串是否符合條件判斷,若不成立,則會拋出 AssertionError 。
@Test
public void usingComparator() {
String value = "AssertJ 155";
System.out.println(value);
Comparator<String> ignoreCase = (s1, s2) -> s1.toLowerCase().compareTo(s2.toLowerCase());
assertThat(value).usingComparator(ignoreCase).contains("ASSERTJ", "155").doesNotContain("RTJX");
value = "AssertJ";
assertThat(value).usingComparator(ignoreCase).startsWith("ASS").endsWith("rtJ");
}
AssertJ 155
AssertJ
usingComparatorWithDescription
Java Testing AssertJ String 使用自定義比較器及描述,驗證字串是否符合條件判斷,顯示自定義訊息。
@Test
public void usingComparatorWithDescription() {
String value = "AssertJ 155";
System.out.println(value);
Comparator<String> ignoreCase = (s1, s2) -> s1.toLowerCase().compareTo(s2.toLowerCase());
assertThat(value).usingComparator(ignoreCase, "ignoreCase").contains("ASSERTJ", "155")
.doesNotContain("RTJX");
value = "AssertJ";
assertThat(value).usingComparator(ignoreCase, "ignoreCase").startsWith("ASS").endsWith("rtJ");
}
AssertJ 155
AssertJ
TestingAssertJStringTest.java
Java Testing AssertJ String 新增單元測試,驗證是否符合預期。
package org.ruoxue.spring_boot_168.test.assertj.string;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.Comparator;
import org.junit.jupiter.api.Test;
public class TestingAssertJStringTest {
@Test
// A=65, a=97
public void isLessThan() {
String value = "AssertJ 155";
System.out.println(value);
assertThat(value).isLessThan("as").isLessThan("bs");
assertThat(value).isLessThan("aS").isLessThan("At");
}
@Test
// A=65, a=97
public void isLessThanOrEqualTo() {
String value = "AssertJ 155";
System.out.println(value);
assertThat(value).isLessThanOrEqualTo("AssertJ 155").isLessThanOrEqualTo("bs");
assertThat(value).isLessThanOrEqualTo("assertj 155").isLessThanOrEqualTo("At");
}
@Test
// A=65, a=97
public void isGreaterThan() {
String value = "assertj 155";
System.out.println(value);
assertThat(value).isGreaterThan("As").isGreaterThan("Bs");
assertThat(value).isGreaterThan("aS").isGreaterThan("aT");
}
@Test
// A=65, a=97
public void isGreaterThanOrEqualTo() {
String value = "assertj 155";
System.out.println(value);
assertThat(value).isGreaterThanOrEqualTo("AssertJ 155").isGreaterThanOrEqualTo("Bs");
assertThat(value).isGreaterThanOrEqualTo("assertj 155").isGreaterThanOrEqualTo("aT");
}
@Test
public void usingDefaultComparator() {
String value = "AssertJ 155";
System.out.println(value);
assertThat(value).usingDefaultComparator().contains("AssertJ", "155").doesNotContain("rtJx");
value = "AssertJ";
assertThat(value).usingDefaultComparator().startsWith("Ass").endsWith("rtJ");
}
@Test
public void usingComparator() {
String value = "AssertJ 155";
System.out.println(value);
Comparator<String> ignoreCase = (s1, s2) -> s1.toLowerCase().compareTo(s2.toLowerCase());
assertThat(value).usingComparator(ignoreCase).contains("ASSERTJ", "155").doesNotContain("RTJX");
value = "AssertJ";
assertThat(value).usingComparator(ignoreCase).startsWith("ASS").endsWith("rtJ");
}
@Test
public void usingComparatorWithDescription() {
String value = "AssertJ 155";
System.out.println(value);
Comparator<String> ignoreCase = (s1, s2) -> s1.toLowerCase().compareTo(s2.toLowerCase());
assertThat(value).usingComparator(ignoreCase, "ignoreCase").contains("ASSERTJ", "155")
.doesNotContain("RTJX");
value = "AssertJ";
assertThat(value).usingComparator(ignoreCase, "ignoreCase").startsWith("ASS").endsWith("rtJ");
}
}
心得分享
AssertJ String Java Testing 除了提供流式判斷,還針對 String 做特殊判斷,在許多測試驗證的場景,讓開發者使用更流暢的驗證,不需要再寫迴圈,善用 Java Testing AssertJ String 將有助於驗證效率的提升。