재시도 규칙을 사용하여 실패한 JUnit 테스트 재시도
테스트 중인 시스템의 예상치 못한 지연으로 인해 JUnit 테스트가 때때로 실패할 수 있습니다. 이러한 실패를 완화하려면 재시도 규칙을 사용하여 실패한 테스트에 두 번째 기회를 줄 수 있습니다.
재시도 규칙을 구현하려면 규칙을 확장하여 사용자 지정 규칙을 생성하세요. Apply() 메서드는 재시도 루프를 포함하여 테스트 주변의 논리를 정의합니다.
<code class="java">public class Retry implements TestRule { private int retryCount; public Retry(int retryCount) { this.retryCount = retryCount; } public Statement apply(Statement base, Description description) { return statement(base, description); } private Statement statement(final Statement base, final Description description) { return new Statement() { @Override public void evaluate() throws Throwable { Throwable caughtThrowable = null; // Retry loop for (int i = 0; i < retryCount; i++) { try { base.evaluate(); return; } catch (Throwable t) { caughtThrowable = t; System.err.println(description.getDisplayName() + ": run " + (i+1) + " failed"); } } System.err.println(description.getDisplayName() + ": giving up after " + retryCount + " failures"); throw caughtThrowable; } }; } }</code>
@Rule을 사용하여 테스트 사례에 재시도 규칙을 적용합니다.
<code class="java">public class RetryTest { @Rule public Retry retry = new Retry(3); // Test methods... }</code>
사용자 정의 TestRunner 사용
또는 BlockJUnit4ClassRunner를 확장하고 runChild() 메서드를 재정의하여 재시도 논리를 포함하는 사용자 정의 TestRunner를 생성할 수 있습니다. 이 방법은 개별 테스트 방법이 실행되는 방식을 재정의합니다.
결론
재시도 규칙 또는 사용자 정의 TestRunner를 사용하면 JUnit 테스트를 향상하여 일시적인 오류를 처리하고 까다로운 조건에서도 테스트 신뢰성을 보장합니다.
위 내용은 재시도 규칙을 사용하여 JUnit 테스트의 일시적인 실패를 어떻게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!