Skip to content

[2.2.2] JUnit5로 UserDaoTest 작성

jsooOO edited this page Aug 8, 2021 · 3 revisions

Gradle에 의존성 추가하기

// https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
// https://mvnrepository.com/artifact/org.hamcrest/hamcrest-all
testImplementation 'org.hamcrest:hamcrest-all:1.3'

jupiter는 junit5 라이브러리이고, hamcrest는 테스트 시 assertion을 자유롭게 커스텀할 수 있는 라이브러리를 제공한다.

UserDaoTest import

import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;

ApplicationContext에서 UserDao Bean 가져오기

// 방법 1
@Autowired
private ApplicationContext context;

@Test
void addAndGet(){
   UserDao dao = context.getBean("userDao", UserDao.class);
   dao.add(user);
...
}

// 방법 2 (권장)
@Autowired
private UserDao dao;

@Test
void addAndGet(){
    dao.add(user);
...
}

JUnit5에서 Exception 테스트 (172p 2-13 코드 참고)

JUnit5에서는 @Test(expected=...)를 지원하지 않고 assert로 예외 발생을 체크한다.
lambda 안에 예외가 발생하는 코드를 넣으면 된다.

assertThrows(EmptyResultDataAccessException.class, () -> {
   ...
});