-
Notifications
You must be signed in to change notification settings - Fork 0
assertj list assertion
gluehloch edited this page Oct 8, 2021
·
2 revisions
AssertJ hat eine praktische Möglichkeit, Listen in JUnit Tests abzuprüfen.
Insbesondere, wenn in der Liste komplexe Objekte abgelegt sind,
spielt es seine Stärke aus.
Über die Methode #extracting(...) werden die Eigenschaften angegeben,
die aus dem Objekt per getter ausgelesen werden sollen. Die ausgelesenen
Eigenschaften werden über #tuple(...) miteinander verglichen.
Das ist dann praktisch, wenn nicht, wie in diesem Beispiel, die Objekte als Instanzen zur Verfügung stehen.
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.tuple;
import java.util.List;
import org.junit.jupiter.api.Test;
/**
* Some examples to test a list.
*
* @author Andre Winkler
*/
class ListAssert {
@Test
public void assertJdemo() {
final Person a = Person.of("Winkler", "Andre");
final Person b = Person.of("Winkler", "Adam");
final Person c = Person.of("Winkler", "Lars");
final Person d = Person.of("Winkler", "Erwin");
final List<Person> list = List.of(a, b, c, d);
assertThat(list).extracting("name", "firstName").contains(
tuple("Winkler", "Andre"),
tuple("Winkler", "Adam"),
tuple("Winkler", "Lars"),
tuple("Winkler", "Erwin"));
}
private static class Person {
private final String name;
private final String firstName;
private Person(String name, String firstName) {
this.name = name;
this.firstName = firstName;
}
public static Person of(String name, String firstName) {
return new Person(name, firstName);
}
public String getName() {
return name;
}
public String getFirstName() {
return firstName;
}
}
}- AssertJ auf GitHub.
by Andre Winkler 2021, Hamburg