0

dbに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

Eclipse などの IDE を使用していますか? ブレーク ポイントを追加し、Debug として実行します。

于 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 に答える