책 예제를 따라서 main() 메소드를 통한 테스트를 JUnit을 통한 테스트로 변환하는 과정중에서
assertThat을 작성하다보면 아니면 그전에 @Test를 작성하면서
import org.junit.* 이 import 되지 않는 경우가 발생한다
IntelliJ에서 Gradle을 통해서 실습을 진행하고 있으며 build.gradle에서 dependencies 부분에
testCompileOnly 'junit:junit:4.12'
testRuntimeOnly 'org.junit.vintage:junit-vintage-engine:5.8.1'
위 내용을 추가해주고 변경내용을 적용한뒤에 다시 import를 하면 정상적으로 되는 것을 알 수 있다
하지만 보시다시피 junit4 버전으로 안내되는 문서에도 Enabling Support for Old Versions
이라고 나와 있다
JUnit5 버전을 보면 dependencies에 해당 내용을 추가한다
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}
JUnit4에서는 assertThan(parm1, is(value)); 를 통해 데이터를 비교하고 테스트 했지만
JUnit5에서는 assertEquals를 이용해 기대값과 결과값이 같은지 비교한다
JUnit4에서는 @Test(expected = 예외클래스) 를 통해 테스트중 발생할 예외클래스를 지정하지만
JUnit5에서는 assertThrows를 통해서 예외클래스를 테스트 한다
@Test
public void getUserFailure() throws SQLException, ClassNotFoundException {
ApplicationContext context = new AnnotationConfigApplicationContext(DaoFactory.class);
UserDAO dao = context.getBean("userDAO", UserDAO.class);
dao.deleteAll();
assertThat(dao.getCount()).isEqualTo(0);
assertThrows(EmptyResultDataAccessException.class, () -> {
dao.get("unkown_id");
});
}
https://www.baeldung.com/junit-5-gradle
'Spring' 카테고리의 다른 글
Controller를 등록해줬지만 localhost:8080 입력시 Whitelabel Error Page가 뜬 경우 (0) | 2022.03.03 |
---|---|
토비의 스프링3.1 예제실습5 - DataSource (0) | 2021.12.23 |
토비의 스프링 3.1 예제실습3 - 스프링 컨텍스트 (0) | 2021.12.21 |
토비의 스프링 3.1 1장 예제실습 - DB Connection (0) | 2021.12.19 |
토비의 스프링 1장 실습 - 시작하기(IntelliJ - MySQL 연동) (0) | 2021.12.19 |