0

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

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

我很欣赏你的回答!!!

更新:测试用例:

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

}

IDE:日食

4

2 回答 2

4

你在使用 IDE 之类的 Eclipse 吗?添加一个断点,并作为调试运行。

于 2012-10-02T14:28:37.453 回答
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);
 }
} 

但第一个是更好的解决方案。我认为您捕获了错误的异常。

于 2012-10-02T14:50:21.513 回答