Table of Contents
ToggleUnit Test List with AssertJ
斷言的基本方法是 assertThat 方法,提高了測試程式碼的可讀性,並且被設計為在主流 IDE 中易於使用,讓開發者將繁瑣的測試驗證過程,變為更簡單,Unit Test Java AssertJ List 介紹常見的 is 、 isIn 、 startsWith 、 endsWith 等方法,本篇增加了範例,本篇增加了範例,並透過單元測試來驗證產出結果。
檔案目錄
./
+- src
+- test
| +- org
| +- ruoxue
| +- spring_boot_168
| +- test
| +- assertj
| +- list
| +- UnitTestListWithAssertJTest.java
單元測試
Java AssertJ List Unit Test 斷言集合的主要目的是取得集合的正確元素以進行斷言。
is
驗證是否符合條件,若不成立,則會拋出 AssertionError 。
@Test
public void is() {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
System.out.println(list);
Condition<List<?>> size = new Condition<List<?>>(s -> s.size() > 2, "size");
assertThat(list).is(size);
List<Integer> intList = Stream.of(6, 7, 8, 9, 10).collect(Collectors.toList());
System.out.println(intList);
Condition<List<?>> intSize = new Condition<List<?>>(i -> i.size() > 2, "size");
assertThat(intList).is(intSize);
}
[Apple, Banana, Cherry]
[6, 7, 8, 9, 10]
isNot
Java AssertJ List Unit Test 驗證是否不符合條件,若不成立,則會拋出 AssertionError 。
@Test
public void isNot() {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
System.out.println(list);
Condition<List<?>> size = new Condition<List<?>>(s -> s.size() > 3, "size");
assertThat(list).isNot(size);
List<Integer> intList = Stream.of(6, 7, 8, 9, 10).collect(Collectors.toList());
System.out.println(intList);
Condition<List<?>> intSize = new Condition<List<?>>(s -> s.size() > 5, "size");
assertThat(intList).isNot(intSize);
}
[Apple, Banana, Cherry]
[6, 7, 8, 9, 10]
isIn
Java AssertJ List Unit Test 驗證是否包含於集合中,若不成立,則會拋出 AssertionError 。
@Test
public void isIn() {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
System.out.println(list);
assertThat("Banana").isIn(list);
List<Integer> intList = Stream.of(6, 7, 8, 9, 10).collect(Collectors.toList());
System.out.println(intList);
assertThat(8).isIn(intList);
}
[Apple, Banana, Cherry]
[6, 7, 8, 9, 10]
isNotIn
Java AssertJ List Unit Test 驗證是否不包含於集合中,若不成立,則會拋出 AssertionError 。
@Test
public void isNotIn() {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
System.out.println(list);
assertThat("Grape").isNotIn(list);
List<Integer> intList = Stream.of(6, 7, 8, 9, 10).collect(Collectors.toList());
System.out.println(intList);
assertThat(1).isNotIn(intList);
}
[Apple, Banana, Cherry]
[6, 7, 8, 9, 10]
isInstanceOf
AssertJ List Methods in Java 驗證是否為指定類別實例,若不成立,則會拋出 AssertionError 。
@Test
public void isInstanceOf() {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
System.out.println(list);
assertThat(list).isInstanceOf(List.class);
List<Integer> intList = Stream.of(6, 7, 8, 9, 10).collect(Collectors.toList());
System.out.println(intList);
assertThat(intList).isInstanceOf(List.class);
}
[Apple, Banana, Cherry]
[6, 7, 8, 9, 10]
isNotInstanceOf
AssertJ List Methods in Java 驗證是否不為指定類別實例,若不成立,則會拋出 AssertionError 。
@Test
public void isNotInstanceOf() {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
System.out.println(list);
assertThat(list).isNotInstanceOf(String.class);
List<Integer> intList = Stream.of(6, 7, 8, 9, 10).collect(Collectors.toList());
System.out.println(intList);
assertThat(intList).isNotInstanceOf(Integer.class);
}
[Apple, Banana, Cherry]
[6, 7, 8, 9, 10]
startsWith
Java Unit Test AssertJ List 驗證是否為第一個元素,若不成立,則會拋出 AssertionError 。
@Test
public void startsWith() {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
System.out.println(list);
assertThat(list).startsWith("Apple");
List<Integer> intList = Stream.of(6, 7, 8, 9, 10).collect(Collectors.toList());
System.out.println(intList);
assertThat(intList).startsWith(6);
}
[Apple, Banana, Cherry]
[6, 7, 8, 9, 10]
endsWith
Java Unit Test AssertJ List 驗證是否為最後個元素,若不成立,則會拋出 AssertionError 。
@Test
public void endsWith() {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
System.out.println(list);
assertThat(list).endsWith("Cherry");
List<Integer> intList = Stream.of(6, 7, 8, 9, 10).collect(Collectors.toList());
System.out.println(intList);
assertThat(intList).endsWith(10);
}
[Apple, Banana, Cherry]
[6, 7, 8, 9, 10]
UnitTestListWithAssertJTest.java
Java Unit Test AssertJ List 新增單元測試,驗證是否符合預期。
package org.ruoxue.spring_boot_168.test.assertj.list;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.assertj.core.api.Condition;
import org.junit.jupiter.api.Test;
public class UnitTestListWithAssertJTest {
@Test
public void is() {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
System.out.println(list);
Condition<List<?>> size = new Condition<List<?>>(s -> s.size() > 2, "size");
assertThat(list).is(size);
List<Integer> intList = Stream.of(6, 7, 8, 9, 10).collect(Collectors.toList());
System.out.println(intList);
Condition<List<?>> intSize = new Condition<List<?>>(i -> i.size() > 2, "size");
assertThat(intList).is(intSize);
}
@Test
public void isNot() {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
System.out.println(list);
Condition<List<?>> size = new Condition<List<?>>(s -> s.size() > 3, "size");
assertThat(list).isNot(size);
List<Integer> intList = Stream.of(6, 7, 8, 9, 10).collect(Collectors.toList());
System.out.println(intList);
Condition<List<?>> intSize = new Condition<List<?>>(s -> s.size() > 5, "size");
assertThat(intList).isNot(intSize);
}
@Test
public void isIn() {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
System.out.println(list);
assertThat("Banana").isIn(list);
List<Integer> intList = Stream.of(6, 7, 8, 9, 10).collect(Collectors.toList());
System.out.println(intList);
assertThat(8).isIn(intList);
}
@Test
public void isNotIn() {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
System.out.println(list);
assertThat("Grape").isNotIn(list);
List<Integer> intList = Stream.of(6, 7, 8, 9, 10).collect(Collectors.toList());
System.out.println(intList);
assertThat(1).isNotIn(intList);
}
@Test
public void isInstanceOf() {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
System.out.println(list);
assertThat(list).isInstanceOf(List.class);
List<Integer> intList = Stream.of(6, 7, 8, 9, 10).collect(Collectors.toList());
System.out.println(intList);
assertThat(intList).isInstanceOf(List.class);
}
@Test
public void isNotInstanceOf() {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
System.out.println(list);
assertThat(list).isNotInstanceOf(String.class);
List<Integer> intList = Stream.of(6, 7, 8, 9, 10).collect(Collectors.toList());
System.out.println(intList);
assertThat(intList).isNotInstanceOf(Integer.class);
}
@Test
public void startsWith() {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
System.out.println(list);
assertThat(list).startsWith("Apple");
List<Integer> intList = Stream.of(6, 7, 8, 9, 10).collect(Collectors.toList());
System.out.println(intList);
assertThat(intList).startsWith(6);
}
@Test
public void endsWith() {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
System.out.println(list);
assertThat(list).endsWith("Cherry");
List<Integer> intList = Stream.of(6, 7, 8, 9, 10).collect(Collectors.toList());
System.out.println(intList);
assertThat(intList).endsWith(10);
}
}
心得分享
AssertJ List Java Unit Test 提供了一組豐富的斷言和真正有用的錯誤訊息,提高了測試程式碼的可讀性,通常與 JUnit 測試一起使用,善用 Java Unit Test AssertJ List 將有助於驗證效率的提升。