Я хочу иметь пользовательскую аннотацию JUnit, и если эта аннотация присутствует в тестовом методе, она должна сделать List
этого объекта доступным для этого тестового метода, в основном через параметр Method.
Company
- это объект внешнего класса, который содержит List<Employee>
, и тест должен иметь гибкость, чтобы иметь список сотрудников по умолчанию или предоставлять собственный список.
Для моего метода теста я обрабатываю аннотацию в соответствующем тесте, однако как я могу запустить эту аннотацию для всех тестовых файлов (аналогично @BeforeMethod
) и если моя методическая аннотация присутствует в методе, введите его как List<Employee>
?
@Test
@CompanyAnnotation(salary = 5)
@CompanyAnnotation(salary = 50)
public void testCompany(// Want to inject as method parameter of List<Employee> list) {
for(Method method : CompanyTest.class.getDeclaredMethods()) {
CompanyAnnotation[] annotations = method.getAnnotationsByType(
CompanyAnnotation.class);
for(CompanyAnnotation d : annotations) {
System.out.println(b);
}
}
}
===
class Company {
// many other properties
List<Employee> employeeList;
}
class Employee {
// more properties
Integer age;
}
class CompanyBuilder {
int defaultEmployeeSize = 10;
public Company create(List<Employee> incoming) {
List<Employee> employees = new ArrayList<>();
employees.addAll(incoming);
if ( employees.size() < defaultEmployeeSize ) {
for(int i = 0; i < (defaultEmployeeSize - employees.size()); i++) {
employee.add(new Employee());
}
}
return employees;
}
}