为参数化的JUnit测试输入生成POJO

时间:2018-11-08 21:39:30

标签: java junit lombok

我正在尝试寻找一种方法,该方法从带有@RunWith(Parameterized.class)批注的类的构造函数中生成POJO对象。 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};
    }

}

编辑:也许我可以使用自定义的龙目岛注释?似乎promising

0 个答案:

没有答案