Unit Test List with AssertJ - AssertJ 155

Unit Test List with AssertJ – AssertJ 155

Unit 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 將有助於驗證效率的提升。

發佈留言