JUnit 규칙을 사용하여이를 수행 할 수 있습니다.
가 정확히 질문 here에 전념 전체 블로그 게시물,하지만 짧은에, 당신은 다음을 수행
- 는
org.junit.rules.TestRule
인터페이스를 구현하는 클래스를 만듭니다. - 음, apply()
방법은 실제로 그렇게 할 것입니다 Statement
익명의 인스턴스를 반환
Statement apply(Statement base, Description description);
base
인수가 실제로 base.execute()
를 호출하여 실행 테스트입니다 :이 인터페이스는 다음과 같은 방법이 포함되어 있습니다. 익명의 Statement
인스턴스에서 테스트를 실행할지 여부를 결정하는 논리를 추가합니다. 테스트를 실행하는 것 외에는 아무 것도하지 않는 TestRule
구현의 예는 아래를 참조하십시오. 그렇습니다. 특히 그렇진 않습니다.
- 당신이 당신의
TestRule
구현을 만든 후에, 당신은 당신 JUnit 테스트 클래스에 다음 줄을 추가해야합니다
@Rule
public MyTestRuleImpl conditionalTests;
가 기억 필드 필수가 공개.
그리고 그게 전부입니다. 행운을 비네 - 내가 말했듯이, 당신은 조금 해킹해야 할 수도 있습니다,하지만 나는 거기에 공정한 금액은 블로그 게시물에 설명되어 있다고 생각합니다. 그렇지 않으면 인터넷 (또는 JUnit 소스 코드)에 대한 다른 정보가 있어야합니다.
다음은 아무 것도하지 않는 TestRule 구현의 간단한 예입니다.
public abstract class SimpleRule implements TestRule {
public Statement apply(final Statement base, final Description description) {
return new Statement() {
public void evaluate() throws Throwable {
try {
base.evaluate();
} catch (Throwable t) {
t.printStackTrace();
}
}
};
}
}
[답변] (http://stackoverflow.com/a/1689261/376390)이 귀하의 질문에 대한 해결책이 될 수도 있습니다. – Marco