Автор оригинала: mkyong.
В этой статье мы покажем вам, как писать тестовые утверждения с помощью AssertJ .
P.S Протестировано с JUnit 5.5.2 и AssertJ 3.14.0
org.junit.jupiter junit-jupiter-engine 5.5.2 test org.assertj assertj-core 3.14.0 test
1. JUnit 5 утверждений для утверждения
Легко преобразовать утверждения JUnit 5 в активы, см. Следующий синтаксис:
assertEquals(expected, actual); assertEquals(expected, actual, "assertion desc");
assertThat(actual).isEqualTo(expected); assertThat(actual).as("assertion desc").isEqualTo(expected);
2. Утверждение J
2.1 Некоторые типичные тестовые утверждения с AssertJ – Строкой
, Список
, Карта
и Исключение
.
package com.mkyong.assertions.assertj; import org.assertj.core.api.InstanceOfAssertFactories; import org.assertj.core.data.Index; import org.junit.jupiter.api.Test; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import static org.assertj.core.api.Assertions.as; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; public class AssertjTest { // assert string @Test void test_string_ok() { String name = "I am Mkyong!"; assertThat(name) .as("if failed display this msg!") .isEqualTo("I am Mkyong!") .isEqualToIgnoringCase("I AM mkyong!") .startsWith("I") .endsWith("!") .containsIgnoringCase("mkyong"); } // assert list @Test void test_list_ok() { Listlist = Arrays.asList("Java", "Rust", "Clojure"); assertThat(list) .hasSize(3) .contains("Java", "Clojure") .contains("Java", Index.atIndex(0)) .contains("Rust", Index.atIndex(1)) .contains("Clojure", Index.atIndex(2)) .doesNotContain("Node JS"); } // assert map @Test void test_map_ok() { Map map = new HashMap<>(); map.put("name", "mkyong"); assertThat(map) .hasSize(1) .extractingByKey("name", as(InstanceOfAssertFactories.STRING)) .isEqualToIgnoringCase("mkyong") .startsWith("mkyong"); assertThat(map).extracting("name") .isEqualTo("mkyong"); Map map2 = new HashMap<>(); map2.put("number", 999); assertThat(map2) .hasSize(1) .extractingByKey("number", as(InstanceOfAssertFactories.INTEGER)) .isEqualTo(999); } // assert exception @Test void test_exception_ok() { assertThatThrownBy(() -> divide(1, 0)) .isInstanceOf(ArithmeticException.class) .hasMessageContaining("zero") .hasMessage("/ by zero"); assertThatThrownBy(() -> { List list = Arrays.asList("one", "two"); list.get(2); }) .isInstanceOf(IndexOutOfBoundsException.class) .hasMessageContaining("Index 2 out of bounds"); } int divide(int input, int divide) { return input / divide; } }
Скачать Исходный Код
- AssertJ – библиотека java для беглых утверждений
- Преобразование ваших утверждений JUnit 5 в утверждение
- Утверждения JUnit 5
Оригинал: “https://mkyong.com/junit5/junit-5-assertj-examples/”