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