Генерация POJO для параметризованных тестовых входов JUnit - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь найти способ генерирования объекта POJO из конструктора класса, помеченного аннотацией @RunWith(Parameterized.class). POJO будет использоваться для генерации Object[], используемого в качестве входных данных для конструктора. Что-то подобное уже существует? Если нет, то как я могу это создать?

Пример кода:

@RunWith(Parameterized.class)
public class Foo {

    @ParameterizedTestPOJO // Annotation that would generate POJO
    public Foo(String inputString, Integer inputInteger) {
        // Does something
    }

    @Test
    public testSomething() {
        // Tests something
    }

    @Parameterized.Parameters
    public static Iterable<Object[]> generateParameters() {
        List<Object[]> parameters = new ArrayList<>();
        // Example of how generated POJO could be used
        parameters.add(new FooParameterizedPojo("input", 1).getParameters());
        return parameters;
    }

}

// Generated POJO
public class FooParameterizedPojo {
    private String inputString;
    private Integer inputInteger;

    public FooParameterizedPojo(String inputString, Integer inputInteger) {
        this.inputString = inputString;
        this.inputInteger = inputInteger;
    }

    public Object[] getParameters() {
        return new Object[] {inputString, inputInteger};
    }

}

Редактировать: Может быть, я мог бы использовать пользовательскую аннотацию Lombok? Кажется перспективным .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...