我们有很多自定义未经检查的异常,它们有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());
}