2009-08-05 2 views
11

저는 junit을 테스트하는 순간 프로젝트 작업을하고 있습니다. 아직 초기 단계이기 때문에 많은 기능이 아직 구현되지 않았습니다. 그여전히 테스트를 통과하면서 경고를 던지기위한 순항 경고

이 작성된 테스트는 (분명히)이 시험은 항상 누군가가 경고를 표시하는 동안 테스트를 통과하기 위해 JUnit을 얻을 수있는 방법을 알고 있는지 궁금 해서요

실패 의미합니다. 선호하는 것은 커스터마이징 가능한 메시지이므로이 기능은 아직 구현되지 않았다는 것을 알 수 있습니다.

모든 테스트가 통과 된 경우에만 컴파일하도록 코드를 작성하려는 시점이며, 현재로서는이 작업을 간단하게 수행 할 수 없습니다.

문제 테스트를 주석으로 처리하거나 제거 할 수는 있지만 나중에 다시 추가하는 것을 잊어 버릴 위험이 있습니다.

답변

4

시험 방법 앞에서 @Ignore 수 있습니다. 그런 다음 테스트 주자에 따라 출력 결과가 달라집니다. 25 개의 테스트를 성공적으로 실행하고 6 개의 테스트를 무시한 결과를 얻을 수 있습니다 ...

더 이상의 모든 것은 단위 테스트를 어떻게 실행 하느냐에 달려 있습니다.

당신은 당신의 새로운 방법에 NotImplementedException을 던질 수
+0

이것은 나를 무시한 테스트의 표시를 생성하는 것 같지 않지만 모두 똑같은, 확실히 염두에 두어야 할 것이 있습니다. –

+0

이것은 내가 가장 가까이에있는 테 감사합니다. –

0

:

Apache Commons NotImplementedException

예를 들어, 모든 사람에게 알림 역할을

@Test (expected=NotImplementedException.class) 
public void testGetName() { 
    myKingdom.getName(); 
} 

물론 그들이 할 때 추가, 해당 기능을 구현 : 다음

public String getName() { 
    throw new NotImplementedException("Oh so soon..."); 
} 

하고이 예외가 throw 기대해야 당신의 JUnit 테스트에 지정 (또는 실수로 제거하면) 단위 테스트에서 더 이상 예외가 발생하지 않고 큰 흔들림이 발생 함을 알 수 있습니다.

+0

이것은 내가 무엇입니까? 현재하고있는 일이지만, 아무 것도 정상이 아니었다는 표시없이 행복하게 테스트를 통과하기 때문에 기능이 아직 구현되지 않았다는 사실을 놓치기 쉽습니다. 그러나 어쨌든 고마워요. –

8

내가 본 대부분의 JUnit 러너는 통과, 실패, 오류 또는 무시 된 네 가지 테스트 케이스 상태 중 하나를 제공합니다.

오류 (예외가 발생 함)가 실패한 것과 비슷한 방식으로보고되면 ("빨간색 결과") 경고를 생성하고 여전히 "녹색 결과"를 얻는 좋은 방법이 아닙니다. 너는 무엇을 찾고 있느냐? 야누에서 언급 한 바와 같이

, 당신은뿐만 아니라 메시지를 포함 할 수있는 테스트 케이스 무시하도록 @Ignore 속성을 사용할 수 있습니다 :

@Ignore("disabled until implementation is finished") 
public void testMe() { 
    //do something 
} 

대부분의 주자가 결과에 명시 적으로 나열되지 않습니다,하지만 당신은 할 수 있습니다 도구를 사용하여 자동으로 무시 된 테스트 케이스를 찾으려면 @Ignore 속성을 찾고 건너 뛴 모든 테스트 케이스와 이유 (속성에 주어진 이유)를 나열한 보고서를 나중에 생성하십시오.

7

org.junit.Assume은 필요한 것을 수행합니까?

0

단위 테스트는 테스트가 가득 차서 수행합니다. 즉, 테스트가 무언가를 수행하고 실패가 잘못되었을 때 가장 좋습니다. 그러므로 그들은 "절반 실패"또는 "경고와 함께 통과"하도록 고안되지 않았습니다.

이것은 단위 테스트가 테스트하도록 설계 되었기 때문입니다. 따라서 그들이 실패 할 때, 뭔가 잘못되었습니다.

아직 구현되지 않은 것을 추적하기 위해 테스트를 사용하지 말고 인 기능을 테스트하는 것이 좋습니다.

현재 기능을 테스트중인 테스트는 해당 기능이있을 때까지 실행되지 않아야합니다.

1

필자는 약 2 년이라는 것을 알고 있지만 필요하지 않은 테스트에 대해서는 의견을 말하고 무시합니다. 프로세스는 공개 코드 검토가 제출 된 코드와 함께 단위 테스트를 포함하는지 확인합니다. 테스트 방법론을 전반적으로 향상시킬 수있는 방법은 &입니다.

+3

2 살짜리에게 인상적인 조언. –

+0

@mattburns 여기서 무슨 뜻인지 모르겠지만 결국 @ @ Ignore' 대답은 내 것보다 훨씬 낫습니다. – avgvstvs

+1

@avgvstvs 나는 그가 "약 2 년이라는 것을 알고있다"는 것을 "... 2 살"이라고 오인했다. 나는 언뜻보기에도 잘했다 ^^ – PixelMaster

관련 문제