数据库单元测试异常,不破坏其他测试

时间:2015-05-26 01:22:52

标签: java unit-testing exception

当我尝试使用数据库测试我的类时遇到问题。我没有使用hibernate所以我无法回滚数据库。发生异常时,数据库操作会停止对异常传递的测试,但是我写的其他测试失败了。我该如何防止这种情况?

@RunWith(SpringJunit4ClassRunne.class)
@ContextConfiguration("test.xml")
public class MachineDaoTest{

@Autowired
private DataSource ds;

@Before
public void setUp(){...}

@Test
public void testFindVersion(){
....
}

@Test
public void testException() {
try {
someMethod.getVersion("xxyyzz");
fail("Expected DB Exception");
} catch (Exception e) {
assertTrue(e instanceof DbException);
}

现在在xml文件中我已经包含了两个sql文件。一个创建表和设置值,另一个删除表并导致异常。由于数据库是自动装配的,我如何能够回滚或使两个测试通过?

在要测试的实际java文件中......

...
try{
result = someMethod.getVersion("x");
if(result==null) {
 throw new DBexception("result should return");
} catch (DBexception e) {
e.getMessage();
}
...

0 个答案:

没有答案