2017-11-09 7 views
-1

fail()을 알고 계시다면 if 상태로 사용하면 특정 조건에서 테스트가 실패한 것으로 표시됩니다. 그러나 fail()은 테스트 자체의 코드가 아니라 테스트 가정의 실패를 표시하는 데 사용됩니다. 예를 들어 expectedFileactualFile이 있다고 가정하지만, expectedFile이 없으면 테스트 케이스를 중단하고 싶습니다.부적절한 테스트 케이스를 올바르게 중단하는 방법은 무엇입니까?

그러나 로깅은 테스트 케이스 자체가 아니라 테스트중인 것을 의미합니다. 테스트 할 유닛이 아닌 테스트 케이스 자체에서 오류가 발생했음을 나타내는 별도의 방법이 있는지 궁금합니다.

+0

예, 예외가 'AssertionError'가하지 않습니다. –

+0

@ xiaofeng.li 그렇다면 "TestException"과 같은 사용자 지정 예외를 만들 수 있습니까? –

+0

일반적으로 특정 예외를 만들지 않습니다. 'AssertionError'가 아닌 예외는 테스트 코드 자체의 오류로 간주되며 테스트중인 코드의 오류는 아닙니다. –

답변

2

Assume.assumeNotNull(...) 메서드를 사용하면 AssumptionViolatedException가됩니다. 인수가 null 인 경우 NullPointerException을 던질 것이다, Objects.requireNonNull(...)를 사용하는 것이 대안이 될 수

import static org.junit.Assume.assumeNotNull; 

// later in the code 
void someMethod() { 
    assumeNotNull(expectedFile, actualFile); 
    // Rest of code goes here 
} 

:처럼 뭔가. actualFile가 null의 경우는 오류 메시지와 함께 실패 이후 단순히 assertEquals()를 사용하지 않는 이유가 궁금

+0

이것은 완벽합니다. 'Assume'은 테스트 케이스 자체를 위해 특별히 설계된 것 같습니다. –

0

: 이해하기가 매우 쉽다

expected "the expected file name" but was NULL 

...