DataJpaTest

    @DataJpaTest H2 in-memory 테스트 오류

    @DataJpaTest H2 기반 in-memory 테스트 시 에러 SpringBoot JPA 를 사용하는 환경에서 JUnit을 이용해서 persistence의 단위테스트가 익숙하지 않아서 공부 하려고 했다. 실제 개발 서버 DB와 연동해서 테스트하다가는 다른 이슈가 있을 수 있어 In-memory로 테스트를 하길 원했다. DBMS를 MySQL로 사용해서 기본 H2 In-memory가 아닌 H2의 MODE와 hibernate의 Dialect를 MySQL 설정하여 사용하려고 하였다. 하지만 다음과 같은 오류로 인해 전혀 테스트를 할 수가 없었다. Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000a c..

    Spring Boot JPA Test @DataJpaTest 기본 설정

    Spring Boot JPA Test @DataJpaTest 기본 설정 jpa관련 테스트(Entity, Repository)를 할때 @DataJpaTest를 이용해서 진행하면 JPA관련 Bean과 @Transactional 어노테이션이 달려있어서 테스트가 끝나면 Configuration만 주입받아서 빠르게 테스트를 진행할 수 있다. @Transactional 어노테이션이 달려있어서 테스트가 끝나면 롤백도 되어서 간단하게 결과를 확인할 수 있는 장점이 있다. MySQL, MSSQL, Oracle 처럼 다른 DB를 연동해서 사용할 수도 있지만, 이 글에서는 in-memory DB인 H2를 연동해서 테스트 하는 방법을 정리하고자 한다. 환경 SpringBoot : 2.7.3 Java : JDK11 MacOS ..