JUnit 시작하기
org.junit.jupiter.api.Assertions.*
assertEquals(expected, actual)
실제 값이 기대한 값과 같은지 확인한다.
@DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class)
class StudyTest {
@Test
@DisplayName("스터디 만들기")
void create_new_study() {
Study study = new Study();
assertNotNull(study);
// 메시지를 적어줘야 테스트 실패 시 확인이 용이하다.
assertEquals(StudyStatus.DRAFT, study.getStatus(), "스터디를 처음 만들면 상태값이 DRAFT여야 한다.");
// 람다로 표현하기
// 람다로 표현하면 -> 뒤의 실행을 테스트가 실패했을 때만 하기 때문에, 문자열 연산을 최대한 하지 않는 이점이 있다.
// 문자열 연산에 부담이 가는 테스트라면 람다를 사용해 성능을 높일 수 있다.
assertEquals(StudyStatus.DRAFT, study.getStatus(), () -> "스터디를 처음 만들면 상태값이 DRAFT여야 한다.");
// executable로 표현하기
// 이 표현을 간추린 것이 위의 람다식이다.
assertEquals(StudyStatus.DRAFT, study.getStatus(), new Supplier<String>() {
@Override
public String get() {
return "스터디를 처음 만들면 상태값이 DRAFT여야 한다.";
}
});
}
}assertNotNull(actual)
값이 null이 아닌지 확인한다.
assertTrue(boolean)
다음 조건이 참(true)인지 확인한다.
assertAll(executables...)
모든 확인 구문을 확인한다.
여러 개의 assert문을 실행하면, 앞에서 실패했을 경우 나머지 구문들이 실행되지 않는다. 이 문제를 해결하기 위해 assertAll()을 사용할 수 있다.
각각을 람다식으로 표현해 넣어주면 된다.
assertThrows(expectedType, executable)
예외가 발생하는지 확인한다.
assertTimeout(duration, executable)
특정 시간 안에 실행이 완료되는지 확인한다.
마지막 매개변수로 Supplier 타입의 인스턴스를 람다 형태로 제공할 수 있다. 복잡한 메시지 생성해야 하는 경우 사용하면 실패한 경우에만 해당 메시지를 만들게 할 수 있다.
(작성중)
Last updated
Was this helpful?