나는 당신으로 인해 기본 JUnit을 주자는 전체 시험 평가하는 방식으로 특정 행동을 관찰하는 제대로 질문을 이해한다면 : 그것은 실행 테스트 방법에 설정된 시간 제한이 실현 후
을 그것은 다른 스레드에서 결과를 기다리고 있습니다. 귀하의 예제에서 타임 아웃이 1 [ms]로 설정되어 있으므로 테스트가 실제로 끝나기 전에 주자가 인 타임 아웃 예외를 던지기 전에 타임 아웃에 도달했다고 생각합니다. expected
에 걸릴 필요가 있다고 생각합니다. 애트리뷰트의 Test
에있는 그러나 의 Test
주석은 테스트 메소드에서 발생한 예외 만 평가하며 시간 초과 확인 메커니즘에서는 발생하지 않습니다. 즉, 예상 예외 메커니즘은 테스트가 아닌 f/w에 의한 타임 아웃 예외 발생에 대해 작동하지 않습니다.
당신의 JUnit에 BlockJUnit4ClassRunner
클래스의 시작이 직접 탐색 할 수 있습니다. (주부터 시작 관련 부분 :이 코드를 통해 이동과 흐름을 이해하는 것이 그렇게 쉬운 일이 아닙니다 ...) :
protected Statement methodBlock(FrameworkMethod method) {
Object test;
try {
test = new ReflectiveCallable() {
@Override
protected Object runReflectiveCall() throws Throwable {
return createTest();
}
}.run();
} catch (Throwable e) {
return new Fail(e);
}
Statement statement = methodInvoker(method, test);
statement = possiblyExpectingExceptions(method, test, statement);
statement = withPotentialTimeout(method, test, statement);
statement = withBefores(method, test, statement);
statement = withAfters(method, test, statement);
statement = withRules(method, test, statement);
return statement;
}