Unit Test LocalDateTime with AssertJ - AssertJ 155

Unit Test LocalDateTime with AssertJ – AssertJ 155

Unit Test LocalDateTime with AssertJ

提供了一組豐富的斷言和真正有用的錯誤訊息,提高了測試程式碼的可讀性,通常與 JUnit 測試一起使用, Unit Test Java AssertJ LocalDateTime 流式斷言,本篇增加了範例,並透過單元測試來驗證產出結果。

檔案目錄

./
   +- src
       +- test
       |   +- org
       |       +- ruoxue
       |           +- spring_boot_168
       |               +- test
       |                   +- assertj
       |                       +- localdatetime
       |                           +- UnitTestLocalDateTimeWithAssertJTest.java   

單元測試

Java AssertJ LocalDateTime Unit Test 斷言日期時間的主要目的是取得日期時間以進行斷言。

is

驗證是否符合條件,若不成立,則會拋出 AssertionError 。

	@Test
	public void is() {
		LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		Condition<LocalDateTime> year = new Condition<LocalDateTime>(l -> l.getYear() > 2022, "year");
		System.out.println(value);
		assertThat(value).is(year);

		value = null;
		System.out.println(value);
		Condition<LocalDateTime> nullz = new Condition<LocalDateTime>(l -> l == null, "null");
		assertThat(value).is(nullz);
	}
2023-10-31T05:06:07
null

isNot

Java AssertJ LocalDateTime Unit Test 驗證是否不符合條件,若不成立,則會拋出 AssertionError 。

	@Test
	public void isNot() {
		LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		Condition<LocalDateTime> year = new Condition<LocalDateTime>(l -> l.getYear() > 2023, "year");
		assertThat(value).doesNotHave(year);

		value = null;
		System.out.println(value);
		Condition<LocalDateTime> nullz = new Condition<LocalDateTime>(l -> l != null, "null");
		assertThat(value).doesNotHave(nullz);
	}
2023-10-31T05:06:07
null

isIn

Java AssertJ LocalDateTime Unit Test 驗證是否包含於陣列中,若不成立,則會拋出 AssertionError 。

	@Test
	public void isIn() {
		LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		assertThat(value).isIn(LocalDateTime.parse("2023-10-31T05:06:07"), LocalDateTime.parse("2023-10-31T06:06:07"));

		value = LocalDateTime.of(2023, 10, 31, 5, 6, 7);
		System.out.println(value);
		assertThat(value).isIn(LocalDateTime.of(2023, 10, 31, 5, 6, 7), LocalDateTime.of(2023, 10, 31, 6, 6, 7));
	}
2023-10-31T05:06:07
2023-10-31T05:06:07

isNotIn

Java AssertJ LocalDateTime Unit Test 驗證是否不包含於陣列中,若不成立,則會拋出 AssertionError 。

	@Test
	public void isNotIn() {
		LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		assertThat(value).isNotIn(LocalDateTime.parse("2023-10-31T04:06:07"),
				LocalDateTime.parse("2023-10-31T06:06:07"));

		value = LocalDateTime.of(2023, 10, 31, 5, 6, 7);
		System.out.println(value);
		assertThat(value).isNotIn(LocalDateTime.of(2023, 10, 31, 4, 6, 7), LocalDateTime.of(2023, 10, 31, 6, 6, 7));
	}
2023-10-31T05:06:07
2023-10-31T05:06:07

isInstanceOf

Java AssertJ LocalDateTime Unit Test 驗證是否為指定類別實例,若不成立,則會拋出 AssertionError 。

	@Test
	public void isInstanceOf() {
		LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		assertThat(value).isInstanceOf(LocalDateTime.class);

		value = LocalDateTime.of(2023, 10, 31, 5, 6, 7);
		System.out.println(value);
		assertThat(value).isInstanceOf(LocalDateTime.class);
	}
2023-10-31T05:06:07
2023-10-31T05:06:07

isNotInstanceOf

Java AssertJ LocalDateTime Unit Test 驗證是否不為指定類別實例,若不成立,則會拋出 AssertionError 。

	@Test
	public void isNotInstanceOf() {
		LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		assertThat(value).isNotInstanceOf(LocalDate.class);

		value = LocalDateTime.of(2023, 10, 31, 5, 6, 7);
		System.out.println(value);
		assertThat(value).isNotInstanceOf(LocalDate.class);
	}
2023-10-31T05:06:07
2023-10-31T05:06:07

UnitTestLocalDateTimeWithAssertJTest.java

Java Unit Test AssertJ LocalDateTime 新增單元測試,驗證是否符合預期。

package org.ruoxue.spring_boot_168.test.assertj.localdatetime;

import static org.assertj.core.api.Assertions.assertThat;

import java.time.LocalDate;
import java.time.LocalDateTime;

import org.assertj.core.api.Condition;
import org.junit.jupiter.api.Test;

public class UnitTestLocalDateTimeWithAssertJTest {

	@Test
	public void is() {
		LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		Condition<LocalDateTime> year = new Condition<LocalDateTime>(l -> l.getYear() > 2022, "year");
		assertThat(value).is(year);

		value = null;
		System.out.println(value);
		Condition<LocalDateTime> nullz = new Condition<LocalDateTime>(l -> l == null, "null");
		assertThat(value).is(nullz);
	}

	@Test
	public void isNot() {
		LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		Condition<LocalDateTime> year = new Condition<LocalDateTime>(l -> l.getYear() > 2023, "year");
		assertThat(value).doesNotHave(year);

		value = null;
		System.out.println(value);
		Condition<LocalDateTime> nullz = new Condition<LocalDateTime>(l -> l != null, "null");
		assertThat(value).doesNotHave(nullz);
	}

	@Test
	public void isIn() {
		LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		assertThat(value).isIn(LocalDateTime.parse("2023-10-31T05:06:07"), LocalDateTime.parse("2023-10-31T06:06:07"));

		value = LocalDateTime.of(2023, 10, 31, 5, 6, 7);
		System.out.println(value);
		assertThat(value).isIn(LocalDateTime.of(2023, 10, 31, 5, 6, 7), LocalDateTime.of(2023, 10, 31, 6, 6, 7));
	}

	@Test
	public void isNotIn() {
		LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		assertThat(value).isNotIn(LocalDateTime.parse("2023-10-31T04:06:07"),
				LocalDateTime.parse("2023-10-31T06:06:07"));

		value = LocalDateTime.of(2023, 10, 31, 5, 6, 7);
		System.out.println(value);
		assertThat(value).isNotIn(LocalDateTime.of(2023, 10, 31, 4, 6, 7), LocalDateTime.of(2023, 10, 31, 6, 6, 7));
	}

	@Test
	public void isInstanceOf() {
		LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		assertThat(value).isInstanceOf(LocalDateTime.class);

		value = LocalDateTime.of(2023, 10, 31, 5, 6, 7);
		System.out.println(value);
		assertThat(value).isInstanceOf(LocalDateTime.class);
	}

	@Test
	public void isNotInstanceOf() {
		LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		assertThat(value).isNotInstanceOf(LocalDate.class);

		value = LocalDateTime.of(2023, 10, 31, 5, 6, 7);
		System.out.println(value);
		assertThat(value).isNotInstanceOf(LocalDate.class);
	}
}

心得分享

AssertJ LocalDateTime Java Unit Test 斷言的基本方法是 assertThat 方法,提高了測試程式碼的可讀性,並且被設計為在主流 IDE 中易於使用,讓開發者將繁瑣的測試驗證過程,變為更簡單,善用 Java Unit Test AssertJ LocalDateTime 將有助於驗證效率的提升。

發佈留言