Table of Contents
ToggleAssertJ Number in Java with Examples
為用 Java 編寫的測試程式提供了流暢的斷言語句,這些斷言語句通常與 JUnit 測試一起使用, AssertJ 斷言的基本方法是 assertThat 方法,驗證 Number 是否相同大小、傳回值等, AssertJ Number in Java 本篇增加了範例,並透過單元測試來驗證產出結果。
檔案目錄
./
+- src
+- test
| +- org
| +- ruoxue
| +- spring_boot_168
| +- test
| +- assertj
| +- number
| +- AssertJNumberWithExamplesTest.java
單元測試
AssertJ Number Java 斷言數字的主要目的是取得數字以進行斷言。
has
驗證是否符合條件,若不成立,則會拋出 AssertionError 。
@Test
public void has() {
int value = 0;
System.out.println(value);
Condition<Integer> equals = new Condition<Integer>(i -> i == 0, "equals");
assertThat(value).has(equals);
double doubleValue = 0d;
System.out.println(doubleValue);
Condition<Double> doubleEquals = new Condition<Double>(i -> Double.compare(i, 0) == 0, "equals");
assertThat(doubleValue).has(doubleEquals);
}
0
0.0
hasToString
AssertJ Number Java 驗證 toString 是否相等,若不成立,則會拋出 AssertionError 。
@Test
public void hasToString() {
int value = 0;
System.out.println(value);
assertThat(value).hasToString(Integer.valueOf(value).toString());
double doubleValue = 0d;
System.out.println(doubleValue);
assertThat(doubleValue).hasToString(Double.valueOf(doubleValue).toString());
}
0
0.0
hasSameClassAs
AssertJ Number Java 驗證類別是否相同,若不成立,則會拋出 AssertionError 。
@Test
public void hasSameClassAs() {
int value = 0;
System.out.println(value);
assertThat(value).hasSameClassAs(0);
double doubleValue = 0d;
System.out.println(doubleValue);
assertThat(doubleValue).hasSameClassAs(0d);
}
0
0.0
returns
AssertJ Number Java 驗證傳回值是否符合預期,若不成立,則會拋出 AssertionError 。
@Test
public void returns() {
int value = 0;
System.out.println(value);
assertThat(value).returns(1, i -> new Integer(i + 1));
double doubleValue = 0d;
System.out.println(doubleValue);
assertThat(doubleValue).returns(1d, i -> new Double(i + 1));
}
0
0.0
doesNotHave
Java AssertJ Number 驗證是否不符合條件,若不成立,則會拋出 AssertionError 。
@Test
public void doesNotHave() {
int value = 0;
System.out.println(value);
Condition<Integer> notEquals = new Condition<Integer>(i -> i != 0, "notEquals");
assertThat(value).doesNotHave(notEquals);
double doubleValue = 0d;
System.out.println(doubleValue);
Condition<Double> doubleNotEquals = new Condition<Double>(i -> Double.compare(i, 0) != 0, "notEquals");
assertThat(doubleValue).doesNotHave(doubleNotEquals);
}
0
0.0
doesNotHaveSameClassAs
Java AssertJ Number 驗證類別是否不相同,若不成立,則會拋出 AssertionError 。
@Test
public void doesNotHaveSameClassAs() {
int value = 0;
System.out.println(value);
assertThat(value).doesNotHaveSameClassAs(0d);
double doubleValue = 0d;
System.out.println(doubleValue);
assertThat(doubleValue).doesNotHaveSameClassAs(0);
}
0
0.0
doesNotReturn
Java AssertJ Number 驗證傳回值是否不符合預期,若不成立,則會拋出 AssertionError 。
@Test
public void doesNotReturn() {
int value = 0;
System.out.println(value);
assertThat(value).doesNotReturn(2, i -> new Integer(i + 1));
double doubleValue = 0d;
System.out.println(doubleValue);
assertThat(doubleValue).doesNotReturn(2d, i -> new Double(i + 1));
}
0
0.0
AssertJNumberWithExamplesTest.java
Java AssertJ Number 新增單元測試,驗證是否符合預期。
package org.ruoxue.spring_boot_168.test.assertj.number;
import static org.assertj.core.api.Assertions.*;
import org.assertj.core.api.Condition;
import org.junit.jupiter.api.Test;
public class AssertJNumberWithExamplesTest {
@Test
public void has() {
int value = 0;
System.out.println(value);
Condition<Integer> equals = new Condition<Integer>(i -> i == 0, "equals");
assertThat(value).has(equals);
double doubleValue = 0d;
System.out.println(doubleValue);
Condition<Double> doubleEquals = new Condition<Double>(i -> Double.compare(i, 0) == 0, "equals");
assertThat(doubleValue).has(doubleEquals);
}
@Test
public void hasToString() {
int value = 0;
System.out.println(value);
assertThat(value).hasToString(Integer.valueOf(value).toString());
double doubleValue = 0d;
System.out.println(doubleValue);
assertThat(doubleValue).hasToString(Double.valueOf(doubleValue).toString());
}
@Test
public void hasSameClassAs() {
int value = 0;
System.out.println(value);
assertThat(value).hasSameClassAs(0);
double doubleValue = 0d;
System.out.println(doubleValue);
assertThat(doubleValue).hasSameClassAs(0d);
}
@Test
public void returns() {
int value = 0;
System.out.println(value);
assertThat(value).returns(1, i -> new Integer(i + 1));
double doubleValue = 0d;
System.out.println(doubleValue);
assertThat(doubleValue).returns(1d, i -> new Double(i + 1));
}
@Test
public void doesNotHave() {
int value = 0;
System.out.println(value);
Condition<Integer> notEquals = new Condition<Integer>(i -> i != 0, "notEquals");
assertThat(value).doesNotHave(notEquals);
double doubleValue = 0d;
System.out.println(doubleValue);
Condition<Double> doubleNotEquals = new Condition<Double>(i -> Double.compare(i, 0) != 0, "notEquals");
assertThat(doubleValue).doesNotHave(doubleNotEquals);
}
@Test
public void doesNotHaveSameClassAs() {
int value = 0;
System.out.println(value);
assertThat(value).doesNotHaveSameClassAs(0d);
double doubleValue = 0d;
System.out.println(doubleValue);
assertThat(doubleValue).doesNotHaveSameClassAs(0);
}
@Test
public void doesNotReturn() {
int value = 0;
System.out.println(value);
assertThat(value).doesNotReturn(2, i -> new Integer(i + 1));
double doubleValue = 0d;
System.out.println(doubleValue);
assertThat(doubleValue).doesNotReturn(2d, i -> new Double(i + 1));
}
}
心得分享
Java AssertJ Number Example 提高了測試程式碼的可讀性,基本方法是 assertThat 方法,善用 Java AssertJ Number 將有助於驗證效率的提升。