我正在运行一个简单的测试用例,我测试数据库中是否没有id,然后我得到预期的异常。
但它不起作用。所以我的问题是如何在junit中跟踪测试的值?有什么好的解决方案吗?
我宣布你的答案!!!
更新: 测试用例:
@Test(expected = SQLException.class)
public void testDeleteID(){
ArrayList<Produkt> queryResult=new ArrayList<Produkt>();
shandler.deleteProdukt(666);
queryResult=shandler.findAll();
}
IDE:eclipse
答案 0 :(得分:4)
您使用的是Eclipse等IDE吗?添加一个断点,并作为Debug运行。
答案 1 :(得分:1)
我认为您尝试捕获嵌套的异常。 将代码更改为该代码并查看stacktrace中的具体异常:
@Test(expected = Exception.class)
public void testDeleteID(){
ArrayList<Produkt> queryResult=new ArrayList<Produkt>();
shandler.deleteProdukt(666);
queryResult=shandler.findAll();
}
另一种方法:删除“expected”并用try-catch块包围数据库操作。
@Test
public void testDeleteID(){
ArrayList<Produkt> queryResult=new ArrayList<Produkt>();
try{
shandler.deleteProdukt(666);
queryResult=shandler.findAll();
assertTrue(false);
}catch(Exception ex){
assertTrue(true);
}
}
但第一个是更好的解决方案。我认为你抓错了。