Table of Contents
ToggleUnit Test String with AssertJ
提供了一組豐富的斷言和真正有用的錯誤訊息,提高了測試程式碼的可讀性,通常與 JUnit 測試一起使用, Unit Test Java AssertJ String 流式斷言,本篇增加了範例,並透過單元測試來驗證產出結果。
檔案目錄
./
+- src
+- test
| +- org
| +- ruoxue
| +- spring_boot_168
| +- test
| +- assertj
| +- string
| +- UnitTestStringWithAssertJTest.java
單元測試
Java AssertJ String Unit Test 斷言字串的主要目的是取得字串以進行斷言。
is
驗證是否符合條件,若不成立,則會拋出 AssertionError 。
@Test
public void is() {
String value = "AssertJ 155";
System.out.println(value);
Condition<String> length = new Condition<String>(s -> s.length() > 10, "length");
System.out.println(value);
assertThat(value).is(length);
value = "AssertJ";
System.out.println(value);
length = new Condition<String>(s -> s.length() > 6, "length");
System.out.println(value);
assertThat(value).is(length);
}
AssertJ 155
AssertJ
isNot
Java AssertJ String Unit Test 驗證是否不符合條件,若不成立,則會拋出 AssertionError 。
@Test
public void isNot() {
String value = "AssertJ 155";
System.out.println(value);
Condition<String> length = new Condition<String>(s -> s.length() > 11, "length");
assertThat(value).isNot(length);
value = "AssertJ";
System.out.println(value);
length = new Condition<String>(s -> s.length() > 7, "length");
assertThat(value).isNot(length);
}
AssertJ 155
AssertJ
isIn
Java AssertJ String Unit Test 驗證是否包含於陣列中,若不成立,則會拋出 AssertionError 。
@Test
public void isIn() {
String value = "AssertJ";
System.out.println(value);
assertThat(value).isIn("AssertJ", "155");
value = "155";
System.out.println(value);
assertThat(value).isIn("AssertJ", "155");
}
AssertJ
155
isNotIn
Java AssertJ String Unit Test 驗證是否不包含於陣列中,若不成立,則會拋出 AssertionError 。
@Test
public void isNotIn() {
String value = "AssertJ";
System.out.println(value);
assertThat(value).isNotIn("JUnit", "151");
value = "155";
System.out.println(value);
assertThat(value).isNotIn("JUnit", "151");
}
AssertJ
155
isInstanceOf
Java AssertJ String Unit Test 驗證是否為指定類別實例,若不成立,則會拋出 AssertionError 。
@Test
public void isInstanceOf() {
String value = "AssertJ 155";
System.out.println(value);
assertThat(value).isInstanceOf(String.class);
value = new String("AssertJ 155");
System.out.println(value);
assertThat(value).isInstanceOf(String.class);
}
AssertJ 155
AssertJ 155
isNotInstanceOf
Java AssertJ String Unit Test 驗證是否不為指定類別實例,若不成立,則會拋出 AssertionError 。
@Test
public void isNotInstanceOf() {
String value = "AssertJ 155";
System.out.println(value);
assertThat(value).isNotInstanceOf(String[].class);
value = new String("AssertJ 155");
System.out.println(value);
assertThat(value).isNotInstanceOf(String[].class);
}
AssertJ 155
AssertJ 155
startsWith
Java Unit Test AssertJ String 驗證是否為第一個字串,若不成立,則會拋出 AssertionError 。
@Test
public void startsWith() {
String value = "AssertJ 155";
System.out.println(value);
assertThat(value).startsWith("AssertJ");
value = "155 AssertJ";
System.out.println(value);
assertThat(value).startsWith("155");
}
AssertJ 155
155 AssertJ
endsWith
Java Unit Test AssertJ String 驗證是否為最後個字串,若不成立,則會拋出 AssertionError 。
@Test
public void endsWith() {
String value = "AssertJ 155";
System.out.println(value);
assertThat(value).endsWith("155");
value = "155 AssertJ";
System.out.println(value);
assertThat(value).endsWith("AssertJ");
}
AssertJ 155
155 AssertJ
UnitTestStringWithAssertJTest.java
Java Unit Test AssertJ String 新增單元測試,驗證是否符合預期。
package org.ruoxue.spring_boot_168.test.assertj.string;
import static org.assertj.core.api.Assertions.assertThat;
import org.assertj.core.api.Condition;
import org.junit.jupiter.api.Test;
public class UnitTestStringWithAssertJTest {
@Test
public void is() {
String value = "AssertJ 155";
System.out.println(value);
Condition<String> length = new Condition<String>(s -> s.length() > 10, "length");
System.out.println(value);
assertThat(value).is(length);
value = "AssertJ";
System.out.println(value);
length = new Condition<String>(s -> s.length() > 6, "length");
System.out.println(value);
assertThat(value).is(length);
}
@Test
public void isNot() {
String value = "AssertJ 155";
System.out.println(value);
Condition<String> length = new Condition<String>(s -> s.length() > 11, "length");
assertThat(value).isNot(length);
value = "AssertJ";
System.out.println(value);
length = new Condition<String>(s -> s.length() > 7, "length");
assertThat(value).isNot(length);
}
@Test
public void isIn() {
String value = "AssertJ";
System.out.println(value);
assertThat(value).isIn("AssertJ", "155");
value = "155";
System.out.println(value);
assertThat(value).isIn("AssertJ", "155");
}
@Test
public void isNotIn() {
String value = "AssertJ";
System.out.println(value);
assertThat(value).isNotIn("JUnit", "151");
value = "155";
System.out.println(value);
assertThat(value).isNotIn("JUnit", "151");
}
@Test
public void isInstanceOf() {
String value = "AssertJ 155";
System.out.println(value);
assertThat(value).isInstanceOf(String.class);
value = new String("AssertJ 155");
System.out.println(value);
assertThat(value).isInstanceOf(String.class);
}
@Test
public void isNotInstanceOf() {
String value = "AssertJ 155";
System.out.println(value);
assertThat(value).isNotInstanceOf(String[].class);
value = new String("AssertJ 155");
System.out.println(value);
assertThat(value).isNotInstanceOf(String[].class);
}
@Test
public void startsWith() {
String value = "AssertJ 155";
System.out.println(value);
assertThat(value).startsWith("AssertJ");
value = "155 AssertJ";
System.out.println(value);
assertThat(value).startsWith("155");
}
@Test
public void endsWith() {
String value = "AssertJ 155";
System.out.println(value);
assertThat(value).endsWith("155");
value = "155 AssertJ";
System.out.println(value);
assertThat(value).endsWith("AssertJ");
}
}
心得分享
AssertJ String Java Unit Test 斷言的基本方法是 assertThat 方法,提高了測試程式碼的可讀性,並且被設計為在主流 IDE 中易於使用,讓開發者將繁瑣的測試驗證過程,變為更簡單,善用 Java Unit Test AssertJ String 將有助於驗證效率的提升。