2011-10-27 5 views
9

@Test에 예상되는 태그와 비슷한 커스텀 JUnit 애노테이션을 만들고 싶었지만 애노테이션 메시지도 확인하고 싶습니다.JUnit 커스텀 애노테이션

어떤 힌트가 있습니까? 아니면 준비가 되었나요?

답변

4

JUnit 4.9는 테스트를위한 라이브러리의 "규칙"사용을 강화했습니다. 사용자 정의 주석뿐만 아니라 작동 할 수도 있습니다. 시작 지점으로 TestRule을 살펴보십시오. 해당 인터페이스를 기반으로 규칙을 구현 한 다음 @ClassRule 또는 (메서드 수준) @Rule 주석을 사용하여 테스트에 적용 할 수 있습니다.

구체적인 예는 ExpectedException입니다. @Test에 대한 예상 매개 변수와 같은 예외를 지정할 수 있습니다.

4

JUnit4 픽업을 사용자 지정 주석으로 만들려면 사용자 지정 Runner 구현을 작성한 다음 Test 클래스의 RunWith 주석에 제공해야합니다.

JUnit 4의 기본 구현 주자 인 BlockJUnit4ClassRunner (메모리가 잘 작동하는 경우)를 살펴봄으로써 시작할 수 있습니다. 테스트 클래스는 같이 보일 것이다

사용자 정의 러너 MyRunner와 @MyTest라는 이름의 사용자 정의 주석을 픽업 할 것입니다 가정 :

@RunWith(MyRunner.class) 
class Tests { 
    ... 
    @MyTest 
    public void assumeBehaviour() { 
     ... 
    } 
} 

"리드 맥"에 의해 대답은 상당히 좋은 일을 커스텀 어노테이션이 어떻게 구현되는지에 대해 설명한다.

+6

더 이상 "Reid Mac"답변이 없습니다. – BrunoJCM

1

당신은 첫 번째 대답에서 언급하거나 사용/이미 시험의 처리 시작/종료를위한 방법을 TestWatcher을 확장 할 수있는 사용자 정의 TestRule을 만들 수 있습니다. 설명은 실제로 테스트 메소드를 감싸는 래퍼 인 방법 apply(Statement base, Description description)입니다. Description에는 처리 할 사용자 지정 주석을 지정하여 원하는 작업을 수행 할 수있는 훌륭한 방법 인 getAnnotation(annotationClass)이 있습니다.

관련 문제