2013-11-27 2 views
3

junit 클래스에서 예외가 발생했는지 테스트하고 싶지 않은 경우 테스트가 실패하면 찾아야 할 설명을 제공하는 설명 메시지를 제공하십시오. 그래서, ...설명 메시지로 Junit ExpectedException이 실패합니다.

thrown.expect(UnsupportedOperationException.class); 
    thrown.expectMessage("an exception message"); 
    thrown.failureMessage("This method should not be called directly. Be sure to use a subclass or mock that implements the method foo()"); 

분명히, 그런 방법으로 failureMessage()가 존재하지 않습니다. 나는 실패 메시지를 구현하고 싶어하는 유일한 사람이 될 수 없다. 내 검색에서 예제를 찾지 못했습니다.

이것은 Junit4 @Rule 및 ExpectedException 기능을 참조한 것입니다.

답변

2

JUnit 4.12는 사용자 정의 실패 메시지 (release notes 참조)를 지원합니다. 이 오류 메시지는 테스트에서 예상되는 예외가 발생하지 않는 경우에 사용됩니다. 잘못된 메시지와 같은 모든 것은 Hamcrest matchers에 의해 처리됩니다.

JUnit 4.12는 2014-12-04에 발표되었습니다.

1

사용자 정의 Matcher을 사용하여 을 서브 클래 싱하여 toString()을 오버라이드하여 원하는대로 할 수 있습니다.

+0

고마워요, 케빈. 나는 내 자신의 커스텀 매처를 작성해야 할 것이다. 나는 그것을 피하기를 바랬다. 다른 사람이 다른 해결책을 찾지 못하도록하기 위해 며칠 동안 이것을 정답으로 표시하지 않겠습니다. –