2010-01-20 5 views
3

다양한 메타 데이터로 테스트 사례 메서드를 연결하는 데 도움이되는 주석을 작성하려고합니다. 지금까지의 내 주석에는 BugFix, UseCase 및 Requirement가 포함됩니다. 최종 목표는 개별 버그 수정, 사용 사례 및 요구 사항과 관련된 테스트 사례를 표시하는 주석 프로세서를 작성하는 것입니다.여러 enum 유형을 사용하여 주석을 작성하는 방법은 무엇입니까?

난 그냥 내 자신의 프로젝트에 이것을 구현했을 때, 나는 각 테스트 연관 카테고리에 대한 내 프로젝트에 맞는 enum을 만들었다. 예를 들어, ProjectUseCase 열거 형을 가지고 있는데,이를 테스트 메소드의 UseCase 주석에 값으로 전달할 수 있습니다. 이를 통해 추가 사용 사례를 추가하거나 단일 장소에서 사용 사례를 쉽게 수정할 수 있습니다.

이제이 코드를 내 개발자가 다른 개발자에게 제공하고 싶습니다. 물론 다른 유스 케이스, 요구 사항 및 버그 수정을 통해 다른 프로젝트를 진행할 것입니다.

가 여기에 내가 실행 해요 문제입니다

열거을 확장 할 수 없습니다
  1. , 그래서 다른 사람들이 자신의 프로젝트에 대한 확장 할 수있는 기본 유스 케이스 열거 할 수 없습니다.
  2. 주석 속성의 값은 상수 여야합니다. 이렇게하면 내 열거 형에서 인터페이스 마커 (TestAssociation)를 사용하고 내 주석 값에 TestAssociation 인터페이스를 사용할 수 없습니다. 또한 이것은 내 주석에서 String 값을 사용하지 못하도록하고 @UseCase (ProjectUseCase.GENERAL.name())와 같이 주석을 사용할 때 열거 형 이름을 전달하지 못하게합니다.

내가 알 수있는 바로는, 이것은 값에 원시 문자열을 사용하여 유형 안전성과 신속하게 리팩토링 할 수있는 능력을 박탈합니다. 열거 형 대신에 상수 문자열 클래스를 사용하는 것이 모든 개발자가 자신의 것을 사용할 수 있기 때문에 이것을 처리하는 가장 좋은 방법 인 것 같습니다.

내가 생각할 수있는 유일한 다른 점은 Enum 클래스 (또는 상수 String 클래스)를 참조하고 사용자가 구현할 수 있도록 클래스를 병에 포함시키지 않는 것입니다.

제안 사항이나 해결 방법은 있습니까?

비슷한 기능을 이미 제공하고있는 프로젝트가 있는지 알고 싶습니다.

+0

도 참조하십시오. http://stackoverflow.com/questions/1037531/is-there-a-way-to-declare-an-annotation-attribute-for-any-enum –

답변

2

넵.

임의의 사용자 정의 주석을 허용하는 유일한 방법은 내 열거 형이 FooEnum 인 경우이를 사용하는 FooAnnotation을 정의 할 수 있도록하는 것입니다. 프레임 워크는 FooAnnotation을 자체가 @UseCase (또는 원하는대로)으로 메타 주석을 달았는지 여부를 확인하여 원하는 주석으로 인식 할 수 있습니다.

+0

나는 그걸로 살 수 있다고 생각합니다. 주석 자체는 터무니없이 간단하며 @TestAssociation 주석이 이미 달려 있습니다. 감사! – InverseFalcon

관련 문제