AssertJ LocalDateTime Methods - AssertJ 155

AssertJ LocalDateTime Methods – AssertJ 155

AssertJ LocalDateTime Methods

提供了一組豐富的斷言和真正有用的錯誤訊息,驗證 LocalDateTime 是否為空值、相等、指定類別實例等方法, 提高了測試程式碼的可讀性,使用 AssertJ LocalDateTime Java Methods 流式斷言,本篇增加了範例,並透過單元測試來驗證產出結果。

檔案目錄

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

單元測試

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

isNull

驗證是否為空值,若不成立,則會拋出 AssertionError 。

	@Test
	public void isNull() {
		LocalDateTime value = null;
		System.out.println(value);
		assertThat(value).isNull();

		LocalDateTime value2 = null;
		System.out.println(value2);
		assertThat(value2).isNull();
	}
null
null

isNotNull

AssertJ LocalDateTime Methods Java 驗證是否不為空值,若不成立,則會拋出 AssertionError 。

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

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

isEqualTo

AssertJ LocalDateTime Methods in Java 驗證日期時間是否相等,若不成立,則會拋出 AssertionError 。

	@Test
	public void isEqualTo() {
		LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		assertThat(value).isEqualTo(LocalDateTime.of(2023, 10, 31, 5, 6, 7));

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

isNotEqualTo

AssertJ LocalDateTime Methods in Java 驗證日期時間是否不相等,若不成立,則會拋出 AssertionError 。

	@Test
	public void isNotEqualTo() {
		LocalDateTime value = LocalDateTime.of(2023, 10, 31, 5, 6, 7);
		System.out.println(value);
		assertThat(value).isNotEqualTo(LocalDateTime.parse("2023-10-31T00:00:00"));

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

isSameAs

AssertJ LocalDateTime Functions in Java 驗證實例是否相等,若不成立,則會拋出 AssertionError 。

	@Test
	public void isSameAs() {
		LocalDateTime value = LocalDateTime.of(2023, 10, 31, 5, 6, 7);
		LocalDateTime value2 = value;
		System.out.println(value);
		System.out.println(value2);
		assertThat(value).isSameAs(value2);

		value = LocalDateTime.parse("2023-10-31T05:06:07");
		value2 = value;
		System.out.println(value);
		System.out.println(value2);
		assertThat(value).isSameAs(value2);
	}
2023-10-31T05:06:07
2023-10-31T05:06:07
2023-10-31T05:06:07
2023-10-31T05:06:07

isNotSameAs

AssertJ LocalDateTime Functions in Java 驗證實例是否不相等,若不成立,則會拋出 AssertionError 。

	@Test
	public void isNotSameAs() {
		LocalDateTime value = LocalDateTime.of(2023, 10, 31, 5, 6, 7);
		LocalDateTime value2 = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		System.out.println(value2);
		assertThat(value).isNotSameAs(value2);

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

isEqualToThrowError

AssertJ LocalDateTime Functions in Java 驗證日期時間是否相等,若不成立,則會拋出 AssertionError 。

	@Test
	public void isEqualToThrowError() {
		LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		try {
			assertThat(value).isEqualTo(LocalDateTime.of(2023, 10, 31, 5, 6, 8));
		} catch (AssertionError e) {
			e.printStackTrace();
		}
	}
2023-10-31T05:06:07	
	
org.opentest4j.AssertionFailedError: 
expected: 2023-10-31T05:06:08 (java.time.LocalDateTime)
 but was: 2023-10-31T05:06:07 (java.time.LocalDateTime)
when comparing values using 'ChronoLocalDateTime.timeLineOrder()'
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at org.ruoxue.spring_boot_168.test.assertj.localdatetime.AssertJLocalDateTimeMethodsTest.isEqualToThrowError(AssertJLocalDateTimeMethodsTest.java:88)

isEqualToThrownBy

AssertJ LocalDateTime Functions in Java 驗證日期時間是否相等,若不成立,則會拋出 AssertionError 。

	@Test
	public void isEqualToThrownBy() {
		assertThatThrownBy(() -> {
			LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
			System.out.println(value);
			assertThat(value).isEqualTo(LocalDateTime.of(2023, 10, 31, 5, 6, 8));
		}).isInstanceOf(AssertionError.class);
	}
2023-10-31T05:06:07

AssertJLocalDateTimeMethodsTest.java

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

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

import static org.assertj.core.api.Assertions.*;
import java.time.LocalDateTime;
import org.junit.jupiter.api.Test;

public class AssertJLocalDateTimeMethodsTest {

	@Test
	public void isNull() {
		LocalDateTime value = null;
		System.out.println(value);
		assertThat(value).isNull();

		LocalDateTime value2 = null;
		System.out.println(value2);
		assertThat(value2).isNull();
	}

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

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

	@Test
	public void isEqualTo() {
		LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		assertThat(value).isEqualTo(LocalDateTime.of(2023, 10, 31, 5, 6, 7));

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

	@Test
	public void isNotEqualTo() {
		LocalDateTime value = LocalDateTime.of(2023, 10, 31, 5, 6, 7);
		System.out.println(value);
		assertThat(value).isNotEqualTo(LocalDateTime.parse("2023-10-31T00:00:00"));

		value = LocalDateTime.parse("2023-10-31T00:00:00");
		System.out.println(value);
		assertThat(value).isNotEqualTo(LocalDateTime.of(2023, 10, 31, 5, 6, 7));
	}

	@Test
	public void isSameAs() {
		LocalDateTime value = LocalDateTime.of(2023, 10, 31, 5, 6, 7);
		LocalDateTime value2 = value;
		System.out.println(value);
		System.out.println(value2);
		assertThat(value).isSameAs(value2);

		value = LocalDateTime.parse("2023-10-31T05:06:07");
		value2 = value;
		System.out.println(value);
		System.out.println(value2);
		assertThat(value).isSameAs(value2);
	}

	@Test
	public void isNotSameAs() {
		LocalDateTime value = LocalDateTime.of(2023, 10, 31, 5, 6, 7);
		LocalDateTime value2 = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		System.out.println(value2);
		assertThat(value).isNotSameAs(value2);

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

	@Test
	public void isEqualToThrowError() {
		LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
		System.out.println(value);
		try {
			assertThat(value).isEqualTo(LocalDateTime.of(2023, 10, 31, 5, 6, 8));
		} catch (AssertionError e) {
			e.printStackTrace();
		}
	}

	@Test
	public void isEqualToThrownBy() {
		assertThatThrownBy(() -> {
			LocalDateTime value = LocalDateTime.parse("2023-10-31T05:06:07");
			System.out.println(value);
			assertThat(value).isEqualTo(LocalDateTime.of(2023, 10, 31, 5, 6, 8));
		}).isInstanceOf(AssertionError.class);
	}
}

心得分享

AssertJ LocalDateTime Functions in Java 為用 Java 編寫的測試程式提供了流暢的斷言語句,這些斷言語句通常與 JUnit 測試一起使用, AssertJ 斷言的基本方法是 assertThat 方法,善用 AssertJ LocalDateTime Methods in Java 將有助於驗證效率的提升。

發佈留言