如何在junit测试中跟踪值?

时间:2012-10-02 14:21:03

标签: java eclipse unit-testing testing junit

我正在运行一个简单的测试用例,我测试数据库中是否没有id,然后我得到预期的异常。

但它不起作用。所以我的问题是如何在junit中跟踪测试的值?有什么好的解决方案吗?

我宣布你的答案!!!

更新: 测试用例:

@Test(expected = SQLException.class)
public void testDeleteID(){
    ArrayList<Produkt> queryResult=new ArrayList<Produkt>();
    shandler.deleteProdukt(666);
    queryResult=shandler.findAll();

}

IDE:eclipse

2 个答案:

答案 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);
 }
} 

但第一个是更好的解决方案。我认为你抓错了。