可以使用动态类创建进行参数化测试吗?

时间:2017-10-25 20:13:38

标签: java junit4 parameterized

我们有很多自定义未经检查的异常,它们有3个重载的构造函数(每个构造函数都有消息,原因以及消息和原因),它们采用不同的参数。我们基本上为每个这样的类编写相同的测试。我想知道是否有可能创建一个公共实用程序,我们可以提供自定义异常的类类型,并运行测试用例为那些自定义类类型动态创建实例。这可能吗?

我在实例化中挣扎。我需要使用反射吗?有没有更好的方法来处理这个?这就是我所拥有的:

 @RunWith(value = Parameterized.class)
public class ParameterizedTest
{
    // Is this even needed?
    private final Throwable throwable;

    public ParameterizedTest(Throwable throwable)
    {
        this.throwable = throwable;
    }

    @Parameters
    public static Iterable<Object[]> data()
    {
        return Arrays.asList(new Object[][] { {ExportException, ImportException}});
    }

     @Test
        public void testConstructor_withMessage()
        {
            String message = "message";
            // I want the object constructed to be of the type supplied in the parameters above
            Throwable exception = new Throwable(message);
            assertSame(message, exception.getMessage());
            assertNull(exception.getCause());
        }

         @Test
public void testConstructor_withMessageAndCause()
{
    Throwable cause = new Throwable();
    String message = "message";
    Throwable exception = new Throwable(message, cause);
    assertSame(message, exception.getMessage());
    assertSame(cause, exception.getCause());
}

0 个答案:

没有答案