2012-10-02 3 views
0

나는 간단한 테스트 케이스를 실행하고 있는데, id가 db에 없다면 예상되는 예외가 다시 발생한다.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

이클립스는 Eclipse와 같은 IDE를 사용하고 있습니까? 중단 점을 추가하고 디버그로 실행하십시오.

1

중첩 된 예외를 잡으려고합니다. 그에게 코드를 변경하고 구체적인 예외의 스택 트레이스에 대해 살펴 :

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

또 다른 방법은 다음 "예상"을 제거하고 시도-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); 
} 
} 

그러나 첫 번째 방법이 더 좋은 해결책입니다. 나는 당신이 틀린 예외를 잡는다고 생각한다.

관련 문제