본문 바로가기

Spring12

Spring Jpa 테스트 H2, TestEntityManager Spring Jpa를 테스트할 떄 사용중(운영, 개발)인 DB를 사용하기 애매할 때가 있다. 이럴때 사용할 수 있는 방법 2가지를 소개하려고 한다. 1. H2(Default) 첫 번쨰로 In Memory Database인 H2 데이터베이스를 사용하는 방법이다. @DataJpaTest 어노테이션을 사용해서 테스트를 하면 테스트 때 참조할 DB의 디폴트가 H2 DB다. 그래서 H2 DB 의존성이 없으면 실행이 안 될 것이다(이떄는 @AutoConfigureTestDatabas(replace = Replace.NONE)을 붙혀서 사용 DB를 참조하게 하면 된다.) H2 DB사용 사용 방법은 https://dongjuppp.tistory.com/68?category=886936 이 글에서 이미 설명하였다. 이번.. 2022. 1. 20.
@WebMvcTest WebMvcTest WebMvcTest는 Controller를 테스트하기 위한 어노테이션이다. WebMvcTest는 Controller를 테스트하기 위한 어노테이션이다. WebMvcTest는 Controller를 테스트하기 위한 어노테이션이다. 3번 말했다 WebMvcTest는 Controller를 테스트하기 위한 어노테이션이다. 이것을 강조하는 이유는 WebMvcTest는 단위 테스트를 위한 테스트 어노테이션임을 정확하게 이해하기 위해서다. WebMvcTest는 Controller가 정상적으로 작동하는지 테스트하는 것이기 때문에 Web과 관련된 의존성만을 가지고 온다. WebMvcTest에서 가져오는 의존성들 즉, 다음 어노테이션들만 ComponentScan해서 가져온다. @Controller, @Co.. 2021. 7. 1.
Spring Lifecycle Callback 스프링 빈의 생성 라이프사이클 콜백 메소드의 종류와 만드는 방법을 알아보자. 1. 생성 콜백 우선 생성 콜백이 있다. 생성 콜백은 스프링 빈이 생성 될때 호출되는 메소드이다. 생성 콜백을 만드는 방법 3가지가 있다. 1.InitializingBean interface 상속 2.XML 혹은 @Configuration 에서 Bean 속성 설정 3.@PostConstruct 어노테이션 사용 2021. 3. 20.
Spring 단위테스트 -2 Data 이번에는 단위테스트에서 Database에 접근하는 클래스를 테스트하는 방법을 보자. 우선 테스트를 알아보기전에 테스트할 코드를 만들어보자. org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 우선 내장 데이터베이스를 이용하기 위해 h2와 데이터베이스 프로그래밍을 위해 jpa를 가져오자. CREATE TABLE user ( id VARCHAR(45) NOT NULL, password VARCHAR(45) NULL, name VARCHAR(45) NULL, PRIMARY KEY (id)); 그다음은 간단하게 테이블을 하나 추가한다. import javax.persistence.Entity; import javax.persistenc.. 2021. 2. 28.
Spring 단위테스트 - 1 Spring Boot 단위테스트 단위테스트란 앱을 모듈단위로 각각 테스트하는것이다. 스프링에서 단위테스트를 어떤식으로 진행하는지에 대해 적어본다. 우선 단위테스트를 위해 한가지 예시코드를 만들었다. public interface RepositoryInterface { boolean save(UserDto userDto); } @Repository public class MyRepository implements RepositoryInterface{ private Hashtable userTable=new Hashtable(); @Override public boolean save(UserDto userDto){ userTable.put(userDto.getName(),userDto); return use.. 2021. 2. 28.
InMemory-H2 이번글은 스프링에서 H2-Database를 사용하는 설명할 것이다. H2-Database는 Mysql,MariaDb등과 다르게 따로 설치하지 않고 의존성만 추가해주면 사용할 수 있는 인메모리 데이터베이스이다. H2-Database를 사용해서 DB를 설치하기전에 미리 테스트를 해볼 수 있다. //Maven com.h2database h2 runtime //gradle testImplementation group: 'com.h2database', name: 'h2', version: '1.4.200' 우선 메이븐,그레이들 각각 사용하는것에 맞게 의존성을 추가해주자. 다음으로는 resources디렉토리 밑에 위처름 schema.sql을 만들어주자. ql파일은 각각 database에 들어갈 DDL문을 넣어놨다 .. 2021. 2. 23.