Агрегация примерно такая, как показано ниже:< /p>
Код: Выделить всё
public class Employee {
private String field1;
private String field2:
//say 10 fields
public static Builder builder() {
return new Builder();
}
public static class Builder {
// builder fields and methods
}
//public lifecycle methods
public void validate() {
if (field1 == null) {
//throw custom exception
}
if (field2 == null) {
//throw custom exception
}
// More condition checks on fields (not all are null checks)
}
}
Код: Выделить всё
public class EmployeeTest {
@Test
public void givenNewEmployee_IfField1IsMissing_thenThrowsException() {
//Setup
Employee testEmployee = Employee.builder()
.field2(nonNullValue)
//other fields
.build();
Assertions.assertThrows(CustomException.class, testEmployee::validate);
}
@Test
public void givenNewEmployee_IfField2IsMissing_thenThrowsException() {
//Setup
Employee testEmployee = Employee.builder()
.field1(nonNullValue)
//other fields
.build();
//Test
Assertions.assertThrows(CustomException.class, testEmployee::validate);
}
}
Мой вопрос:
Есть ли способ настроить testEmployee один раз, а затем установить для отдельных полей значение null в каждом из тестовых случаев, чтобы мои тесты были краткими и не требовали создания всего testEmployee?
Мне известны аннотации @BeforeAll и @BeforeEach для настройки тестов. Но поскольку мой класс «Сотрудник» не предоставляет никакого установщика, у меня нет возможности настроить один действительный testEmployee в @BeforeEach, а затем установить для отдельных полей значение null в каждом из тестовых случаев. Поэтому мне нужны альтернативы, если таковые имеются.
Подробнее здесь: https://stackoverflow.com/questions/791 ... hout-any-s
Мобильная версия