2014-01-06 7 views
1

많은 JUnit 3 테스트를 통해 철저히 테스트 된 공용 API를 사용하는 응용 프로그램을 만들고 있습니다. 몇 가지 변경 사항이 있었으며 테스트 할 초기 구성 설정이 두 가지 있습니다. 각 구성에서 모든 테스트 스위트를 실행하고 싶지만 초기 조건을 기반으로 한 작은 세트의 API 메소드는 이제 다르게 동작합니다. 몇 가지 주석을 구현하거나 테스트 방법을 전환하기 위해 가정을 사용하고 싶습니다. 그러나 주석과 JUnit 4가 범위를 벗어나기 위해 Java 1.4에 실제로 붙어 있습니다 ...JUnit 3 가정은 JUnit4와 유사하거나 Java 1.4에서 사용할 수있는 동일한 기술을 사용합니다.

여기에서 진행 방법에 대한 아이디어가 있습니까? 나는 의미 론적 이유 때문에 클래스를 분리하거나 메서드를 옮기는 것을 피하고 싶습니다.

참고 : 이러한 테스트는 간단하지 않고 구성에서 예상되는 결과 만 구성하면 작동하지 않습니다.

물론 나는

public testAbc() { 
    if (cond) 
     testAbc0(); 
    else 
     testAbc1(); 
} 

같은 뭔가를 할 수 있지만, 이것은 나뿐만 아니라 추한 친다.

+0

어노테이션을 사용하려면 아마도 1.4로 백 포트를 지원하는 도구 중 하나를 사용할 수 있습니다. http://stackoverflow.com/questions/1011706/backport-java-5-6-features-to-java-1-4 – Mark

+0

을 참조하십시오. 배포가 1.4를 목표로해야하는 경우라도 테스트를 위해 이후 릴리스를 사용할 것을 고려하십시오 (예 : [테스트 및 메인에 대한 다른 메이븐 컴파일러 버전] (http://stackoverflow.com/questions/1213897/different-maven-compiler-versions-for-test-and-main)). – Joe

+0

@Joe 나중에 답을 드려 죄송합니다. 실제로 작동하는 방식입니다. API는 Java 1.4로 컴파일되지만 테스트 스위트는 이제 Java 6 VM에서 실행됩니다. 동의 할 수 있도록 답변으로 의견을 추가하십시오. –

답변

0

배포 대상이 1.4 인 경우에도 테스트를 위해 이후 릴리스 (예 : Different maven compiler versions for test and main)를 사용하는 것이 좋습니다.

이렇게하면 1.4 JDK로 컴파일 된 바이너리를 배포 할 수 있으며 테스트 프레임 워크의 모든 이후 기능을 활용할 수있을뿐 아니라 현재 Java 환경에서 제작 업그레이드를 준비 할 수 있습니다.