2012-10-02 69 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); 
} 
} 

但第一个是更好的解决方案。我想你会发现错误的例外。