我想写一个JUnit测试断言异常。就我而言,我的期望是捕获DataAccessException。但是,DataAccessException是一个抽象类,我的代码可以抛出任何从DataAccessException扩展的具体类。
这是我的代码,使用JUnit规则:
@Rule
public final ExpectedException exception = ExpectedException.none();
@Test
public void testDelete_fail() {
EasyMock.expect(testSubject.delete(EasyMock.anyObject()))
.andThrow(new DataAccessException("..."));
exception.expect(DataAccessException.class);
testSubject.delete(id);
}
如您所知,我无法创建抽象类的新实例。这意味着,我无法为andThrow方法填充参数。如果我尝试使用DuplicateKeyException构建,哪一个从DataAccessException扩展,我得到一个错误:
AssertionError: Expected test to throw an instance of org.springframework.dao.DataAccessException
任何想法?,我更喜欢使用EasyMock。感谢
答案 0 :(得分:0)
一个简单的技巧是main()
{
int a=1, b=2, ab[]={10,20};
printf( "%d", 20 );
printf( "%d", 1 );
printf( "%d", 1 );
}
。但事实上,createNiceMock(DataAccessException.class)
也可行。