2011-10-04 5 views
5

가능한 한 재사용 가능한 컴포넌트를 디자인하기 위해 최근에 "어댑터 어노테이션"의 가능성에 대해 생각해 보았습니다. 이것에 의해, Java 어노테이션에 고전적인 Adapter OO 패턴의 적용을 의미합니다. 예를 들어, JUnit 기반의 유닛 테스트 스위트가 있다고 가정 해 봅시다. 다음과 같이 내 시험 방법의 모든 주석을해야합니다 :자바 어댑터 어노테이션

public class WidgetTest 
{ 
    @Test 
    public void test_WidgetConstructor() 
    { 
     // ... 
    } 
} 

그러나 1000 개 테스트 클래스, 말과 테스트 스위트를 생성 한 후, 나는 몇 가지 새로운 슈퍼와 단위 테스트를 시작하려는 결정하는 경우

public class WidgetTest 
{ 
    @SuperCoolUnitTest(someParam="true") 
    public void test_WidgetConstructor() 
    { 
     // ... 
    } 
} 

을 지금은 새로운 것들에 대한 기존의 주석을 검색-n은-대체 완벽하게 실현 될 수있는이 특정 예에서,하지만 모든 시험 방법을 필요로 차가운 테스트 프레임 워크는 다음과 같이 주석한다 이는 실제 응용에서 이것은 실현 가능한 해결책이 될 수 없다.

public class WidgetTest 
{ 
    @HomegrownUnitTestAnnotation 
    public void test_WidgetConstructor() 
    { 
     // ... 
    } 
} 

그리고 어느 주석 나는 현재 필요로 @HomegrownUnitTestAnnotation의 인스턴스를 변환 할 내 자신의 주석 프로세서를 구축 : 나처럼 뭔가 자체 내 단위 테스트 주석을 "포장"에 대한

는 그래서 가능한 것 (@Test 또는 @SuperCoolUnitTest(someParam="true"))?

분명히이 질문은 JUnit에서 제공 한 주석이 아닌 모든 주석에 적용됩니다. 재사용/분리 등의 이유로 제 3 자 애노테이션을 감쌀 수 있는지를 묻습니다. 미리 감사드립니다!

+0

JUnit API (예 : Assert ...)를 덤프하려면 '새로운 테스트 프레임 워크'가 필요합니까? – home

+0

클래스와 메서드를 꾸미기 위해 주석 만 사용되는 경우가 많습니다. 이러한 메서드 내에서 호출되는 API 호출은 없습니다. 제가 질문에 언급했듯이, 이것은 JUnit 특정 시나리오가 아닙니다. 한 유형의 주석을 다른 주석에 매핑 할 수있는 주석 프로세서를 빌드하는 것이 가능한지 묻습니다. – IAmYourFaja

+0

Ahhhhh 아주 좋아! 고마워요. 집. 내 질문에 대한 짧은 대답은 "예"라고 생각하지만, "pure Java"(비 스프링) 방식이 필요한지 궁금합니다. 분명히 Spring이 이러한 메타 주석으로 처리한다면, 자체 개발 솔루션을 만드는 것이 가능해야합니다. 당신이 당신의 코멘트를 대답으로 바꾸면 기꺼이 그것을 확인해 줄 것입니다. 다시 한번 감사드립니다. – IAmYourFaja

답변