2012-10-02 91 views
0

我正在運行一個簡單的測試用例,我測試數據庫中是否沒有id,並且我得到了預期的異常。如何在junit測試中跟蹤值?

但它不起作用。所以我的問題是如何在junit中追蹤測試的值?任何好的解決方案

我喜歡你的答案!

UPDATE: 測試用例:

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

} 

IDE:月食

+1

你可以發佈測試用例嗎? –

回答

4

是否使用IDE,比如Eclipse?添加一箇中斷點,並作爲Debug運行。

1

我想你試着去捕捉一個嵌套的異常。 你的代碼更改爲看一看在堆棧跟蹤的具體例外:

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

另一種方法:去掉「預期」,並用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); 
} 
} 

但第一個是更好的解決方案。我想你會發現錯誤的例外。