Включает hamcrest-библиотеку
и проверяет свойство класса и его значение с помощью hasProperty()
:
P.S Протестировано с JUnit 4.12 и hamcrest-библиотекой 1.3
package com.mkyong; import org.junit.Test; import java.util.Arrays; import java.util.List; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.hasProperty; import static org.junit.Assert.assertThat; public class ClassPropertyTest { //Single Object @Test public void testClassProperty() { Book obj = new Book("Mkyong in Action"); assertThat(obj, hasProperty("name")); assertThat(obj, hasProperty("name", is("Mkyong in Action"))); } // List Objects @Test public void testClassPropertyInList() { Listlist = Arrays.asList( new Book("Java in Action"), new Book("Spring in Action") ); assertThat(list, containsInAnyOrder( hasProperty("name", is("Spring in Action")), hasProperty("name", is("Java in Action")) )); } public class Book { public Book(String name) { this.name = name; } private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } }
Вот файл Maven pom для включения hamcrest-библиотеки
junit junit 4.12 test org.hamcrest hamcrest-core org.hamcrest hamcrest-library 1.3 test
Рекомендации
Оригинал: “https://mkyong.com/unittest/junit-assert-if-a-property-exists-in-a-class/”