KoreaIt Academy/Spring Boot
[Spring Boot] 단위 테스트에서 Controller와 MyBatis를 테스트 하는 문법
728x90
반응형
Controller 테스트
먼저 위와 같이 test폴더에 ControllerTest.java 파일을 만들어 줍니다.
package com.example.board.controller;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MockMvcBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
@ExtendWith(SpringExtension.class)
@SpringBootTest
@Slf4j
// 컨트롤러를 테스트하는 문법
public class ControllerTest {
// 가짜 MVC
// 마치 브라우저에서 URL을 요청한 것처럼 환경을 만들어 준다.
private MockMvc mockMvc;
// 요청을 처리해 주는 WebApplicationContext를 불러온다.
@Autowired
private WebApplicationContext webApplicationContext;
// 하위의 모든 테스트가 실행 전에 실행되도록 한다.
@BeforeEach
public void setUp(){
// 가짜 MVC에 WebApplicationContext를 전달한 후 환경을 생성한다.
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
}
@Test
public void testList() throws Exception{
log.info(mockMvc.perform(MockMvcRequestBuilders.get("/board/list"))
.andReturn().getModelAndView().getModelMap().toString()); //get방식 doGet ..
}
}
MyBatis 테스트
먼저 위와 같이 test폴더에 MyBatisConfigTest.java 파일을 만들어 줍니다.
package com.example.board.mybatis;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import javax.sql.DataSource;
import java.sql.Connection;
@SpringBootTest
@Slf4j
public class MyBatisConfigTest {
@Autowired
private SqlSessionFactory sqlSessionFactory;
@Autowired
private DataSource dataSource;
@Test
public void testDataSource(){
try
(
Connection conn = dataSource.getConnection();
)
{
log.info("-------------------------------------");
log.info("datasource connection : " + conn);
log.info("-------------------------------------");
} catch (Exception e){
e.printStackTrace();
}
}
@Test
public void testSqlSession(){
log.info("-------------------------------------------");
log.info("sql session factory : " + sqlSessionFactory);
log.info("-------------------------------------------");
try
(
SqlSession sqlSession = sqlSessionFactory.openSession(true);
Connection conn = sqlSession.getConnection();
)
{
log.info("—————————————————————");
log.info("sql session connection : " + conn);
log.info("—————————————————————");
} catch (Exception e) {
e.printStackTrace();
}
}
}
728x90
반응형
'KoreaIt Academy > Spring Boot' 카테고리의 다른 글
[Spring Boot] 페이징 처리 - Criteria, PageDTO (2) | 2021.10.13 |
---|---|
[Spring Boot] 템플릿 엔진( View Template Engine) Thymeleaf (0) | 2021.10.13 |
[Spring Boot] 3-tier(티어) 아키텍처 (0) | 2021.10.08 |
[Spring Boot] @ControllerAdvice, @ExceptionHandler을 이용한 예외처리 방법(404, 500 에러) (0) | 2021.10.08 |
[Spring Boot] MyBatis 설정 (hikari cp), 사용법 (0) | 2021.10.08 |
댓글