Testing with AssertJ String in Java - AssertJ 155

Testing with AssertJ String in Java – AssertJ 155

Testing with AssertJ String in Java

提供驗證字串條件判斷等方法,編寫的測試程式使用流暢的斷言語句,通常與 JUnit 測試一起使用, AssertJ 斷言的基本方法是 assertThat 方法,使用 Testing Java AssertJ String 流式斷言,本篇增加了範例,並透過單元測試來驗證產出結果。

檔案目錄

./
   +- src
       +- test
       |   +- org
       |       +- ruoxue
       |           +- spring_boot_168
       |               +- test
       |                   +- assertj
       |                       +- string
       |                           +- TestingAssertJStringTest.java   

單元測試

Java AssertJ String Testing 斷言字串的主要目的是取得字串以進行斷言。

isLessThan

驗證字串是否小於指定值,若不成立,則會拋出 AssertionError 。

	@Test
	// A=65, a=97
	public void isLessThan() {
		String value = "AssertJ 155";
		System.out.println(value);
		assertThat(value).isLessThan("as").isLessThan("bs");
		assertThat(value).isLessThan("aS").isLessThan("At");
	}
AssertJ 155

isLessThanOrEqualTo

Java AssertJ String Testing 驗證字串是否小於或等於指定值,若不成立,則會拋出 AssertionError 。

	@Test
	// A=65, a=97
	public void isLessThanOrEqualTo() {
		String value = "AssertJ 155";
		System.out.println(value);
		assertThat(value).isLessThanOrEqualTo("AssertJ 155").isLessThanOrEqualTo("bs");
		assertThat(value).isLessThanOrEqualTo("assertj 155").isLessThanOrEqualTo("At");
	}
AssertJ 155

isGreaterThan

Java AssertJ String Testing 驗證字串是否大於指定值,若不成立,則會拋出 AssertionError 。

	@Test
	// A=65, a=97
	public void isGreaterThan() {
		String value = "assertj 155";
		System.out.println(value);
		assertThat(value).isGreaterThan("As").isGreaterThan("Bs");
		assertThat(value).isGreaterThan("aS").isGreaterThan("aT");
	}
assertJ 155

isGreaterThanOrEqualTo

Java AssertJ String Testing 驗證字串是否大於或等於指定值,若不成立,則會拋出 AssertionError 。

	@Test
	// A=65, a=97
	public void isGreaterThanOrEqualTo() {
		String value = "assertj 155";
		System.out.println(value);
		assertThat(value).isGreaterThanOrEqualTo("AssertJ 155").isGreaterThanOrEqualTo("Bs");
		assertThat(value).isGreaterThanOrEqualTo("assertj 155").isGreaterThanOrEqualTo("aT");
	}
assertJ 155

usingDefaultComparator

Java Testing AssertJ String 使用預設比較器,驗證字串是否符合條件判斷,若不成立,則會拋出 AssertionError 。

	@Test
	public void usingDefaultComparator() {
		String value = "AssertJ 155";
		System.out.println(value);
		assertThat(value).usingDefaultComparator().contains("AssertJ", "155").doesNotContain("rtJx");
		value = "AssertJ";
		assertThat(value).usingDefaultComparator().startsWith("Ass").endsWith("rtJ");
	}
AssertJ 155
AssertJ

usingComparator

Java Testing AssertJ String 使用自定義比較器,驗證字串是否符合條件判斷,若不成立,則會拋出 AssertionError 。

	@Test
	public void usingComparator() {
		String value = "AssertJ 155";
		System.out.println(value);
		Comparator<String> ignoreCase = (s1, s2) -> s1.toLowerCase().compareTo(s2.toLowerCase());
		assertThat(value).usingComparator(ignoreCase).contains("ASSERTJ", "155").doesNotContain("RTJX");
		value = "AssertJ";
		assertThat(value).usingComparator(ignoreCase).startsWith("ASS").endsWith("rtJ");
	}
AssertJ 155
AssertJ

usingComparatorWithDescription

Java Testing AssertJ String 使用自定義比較器及描述,驗證字串是否符合條件判斷,顯示自定義訊息。

	@Test
	public void usingComparatorWithDescription() {
		String value = "AssertJ 155";
		System.out.println(value);
		Comparator<String> ignoreCase = (s1, s2) -> s1.toLowerCase().compareTo(s2.toLowerCase());
		assertThat(value).usingComparator(ignoreCase, "ignoreCase").contains("ASSERTJ", "155")
				.doesNotContain("RTJX");
		value = "AssertJ";
		assertThat(value).usingComparator(ignoreCase, "ignoreCase").startsWith("ASS").endsWith("rtJ");
	}
AssertJ 155
AssertJ

TestingAssertJStringTest.java

Java Testing AssertJ String 新增單元測試,驗證是否符合預期。

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

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

import java.util.Comparator;
import org.junit.jupiter.api.Test;

public class TestingAssertJStringTest {

	@Test
	// A=65, a=97
	public void isLessThan() {
		String value = "AssertJ 155";
		System.out.println(value);
		assertThat(value).isLessThan("as").isLessThan("bs");
		assertThat(value).isLessThan("aS").isLessThan("At");
	}

	@Test
	// A=65, a=97
	public void isLessThanOrEqualTo() {
		String value = "AssertJ 155";
		System.out.println(value);
		assertThat(value).isLessThanOrEqualTo("AssertJ 155").isLessThanOrEqualTo("bs");
		assertThat(value).isLessThanOrEqualTo("assertj 155").isLessThanOrEqualTo("At");
	}

	@Test
	// A=65, a=97
	public void isGreaterThan() {
		String value = "assertj 155";
		System.out.println(value);
		assertThat(value).isGreaterThan("As").isGreaterThan("Bs");
		assertThat(value).isGreaterThan("aS").isGreaterThan("aT");
	}

	@Test
	// A=65, a=97
	public void isGreaterThanOrEqualTo() {
		String value = "assertj 155";
		System.out.println(value);
		assertThat(value).isGreaterThanOrEqualTo("AssertJ 155").isGreaterThanOrEqualTo("Bs");
		assertThat(value).isGreaterThanOrEqualTo("assertj 155").isGreaterThanOrEqualTo("aT");
	}

	@Test
	public void usingDefaultComparator() {
		String value = "AssertJ 155";
		System.out.println(value);
		assertThat(value).usingDefaultComparator().contains("AssertJ", "155").doesNotContain("rtJx");
		value = "AssertJ";
		assertThat(value).usingDefaultComparator().startsWith("Ass").endsWith("rtJ");
	}

	@Test
	public void usingComparator() {
		String value = "AssertJ 155";
		System.out.println(value);
		Comparator<String> ignoreCase = (s1, s2) -> s1.toLowerCase().compareTo(s2.toLowerCase());
		assertThat(value).usingComparator(ignoreCase).contains("ASSERTJ", "155").doesNotContain("RTJX");
		value = "AssertJ";
		assertThat(value).usingComparator(ignoreCase).startsWith("ASS").endsWith("rtJ");
	}

	@Test
	public void usingComparatorWithDescription() {
		String value = "AssertJ 155";
		System.out.println(value);
		Comparator<String> ignoreCase = (s1, s2) -> s1.toLowerCase().compareTo(s2.toLowerCase());
		assertThat(value).usingComparator(ignoreCase, "ignoreCase").contains("ASSERTJ", "155")
				.doesNotContain("RTJX");
		value = "AssertJ";
		assertThat(value).usingComparator(ignoreCase, "ignoreCase").startsWith("ASS").endsWith("rtJ");
	}
}

心得分享

AssertJ String Java Testing 除了提供流式判斷,還針對 String 做特殊判斷,在許多測試驗證的場景,讓開發者使用更流暢的驗證,不需要再寫迴圈,善用 Java Testing AssertJ String 將有助於驗證效率的提升。

發佈留言