Test 3

JdbcTemplate

스프링 JdbcTemplate과 MyBatis 같은 라이브러리는 JDBC API에서 본 반복 코드를 대부분 제거해준다. 하지만 SQL은 직접 작생해야 한다. ==> 반복 코드 ==> resultset같이 매번 반복되는 코드들 참고로 생성자가 하나일 때는 @Autowired를 생략해 줄 수 있다. DataSource 설정 위에서 bean으로 등록한 DataSource를 주입 @Autowired에 의해 주입 JdbcTemplate 객체를 생성하여 dataSource를 주입한다. CRUD API 제공 SQL문 작성 RowMapper interface 구현을 통해 SQL의 결과를 객체에 매핑하여 결과를 리턴 mapRow()라는 interface Method를 정의하여 결과처리 한 번만 사용하는 기능의 경우는 R..

스프링 통합 테스트

@Transactional 테스트를 할 때 이 애노테이션을 달면 트랜잭션을 먼저 실행하고 테스트를 실행한 후에(DB insert 등등) 마지막에 Rollback을 해준다. 앞서 우리가 @BeforeEach를 통하여 테스트마다 리포지토리를 비워주었던 일을 하지 않아도 된다. 테스트마다 rollback해줌. 추가로 @Commit 애노테이션은 테스트 후에 commi시켜 실제 db에 등록한다. @SpringBootTest @SpringBootTest는 스프링 부트 어플리케이션 테스트 시 테스트에 필요한 거의 모든 의존성을 제공 어노테이션 @SpringBootApplication을 기준으로 스프링 빈을 등록함과 동시에 Maven 같은 빌드 툴에 의해 추가된 스프링부트 의존성도 제공 @SpringBootTest 어..

회원 도메인과 리포지토리 테스트

개발한 기능을 실행해서 테스트 할 때 자바의 main 메서드를 통해서 실행하거나, 웹 애플리케이션의 컨트롤러를 통해서 해당 기능을 실행한다. 이러한 방법은 준비하고 실행하는데 오래 걸리고, 반복 실행하기 어렵고 여러 테스트를 한번에 실행하기 어렵다는 단점이 있다. 자바는 JUnit이라는 프레임워크로 테스트를 실행해서 이러한 문제를 해결한다. 1. save() 메소드 테스트 1-1. 직접 출력해서 테스트하기 console창에 result = true로 뜬 것을 확인할 수 있다. ==> 테스트 성공 1-2. Assertions로 테스트하기 * junit Junit에서 제공하는 Assertions 사용 ==> 테스트 성공 테스트 실패시에는 다음과 같이 오류가 발생한다. Expected(기댓값, 우리가 찾는 값..

반응형