다가오는 다음을 향해
[Spring MVC] 게시글 자동등록 - 단위테스트 본문
[ 개발환경 ]
MacBook Air M1 2020년형
eclipse [2021-3 var]
Java [zulu-8]
JSP
Tomcat [Apache Tomcat/9.0.58]
[ version ]
- springframework - 4.3.14
- aspectj - 1.8.9
- Test - 4.12
Maven repository
- mysql-connector-java 8.0.27
- spring-jdbc - 4.3.14
- spring-test - 4.3.14
mybatis - 3.4.4
mybatis-spring - 1.3.1
게시글 자동등록
게시글 자동등록 목적
게시글 페이징 처리를 위한 준비를 하기 위해 작성했다.
작성방법
단위테스트를 하기 위해서 사진 위치에 파일을 만들었다.
1. BoardCreateTest.java 작성
package kr.co.dong;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import javax.inject.Inject;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import kr.co.dong.board.BoardDAO;
import kr.co.dong.board.BoardDTO;
//현재 테스트 코드를 실행할 때 스프링이 로딩 되도록 하는 부분.
@RunWith(SpringJUnit4ClassRunner.class)
//속성 경로에 xml파일을 이용해 스프링이 로딩 된다.
@ContextConfiguration(locations = { "file:src/main/webapp/WEB-INF/spring/**/root-context.xml" })
public class BoardCreateTest {
//위에서 스프링이 정상적으로 동작할 경우 스프링이 생성해서 주입해준다.
@Inject
private BoardDAO boardDAO;
@Test
public void testInsert() throws Exception {
BoardDTO boardDTO;
String formatedNow = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
for (int i= 1; i<=1000; i++) {
boardDTO = new BoardDTO();
boardDTO.setTitle("Test Title[" + i + "]");
boardDTO.setContent("Test Content -" + i);
boardDTO.setRegdate(formatedNow);
boardDTO.setId("root");
boardDAO.registerBoard(boardDTO); // 글쓰기
Thread.sleep(1000); // 1초간 대기
}
}
}
2. root-context.xml에 component-scan 을 등록해준다.
<context:component-scan base-package="패키지 이름"/>
root-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd
http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
<bean id="dataSourceSpied" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/SCOTT?serverTimezone=UTC"></property>
<property name="username" value="아이디"></property>
<property name="password" value="비밀번호"></property>
</bean>
<!-- db Log추가 -->
<bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">
<constructor-arg ref="dataSourceSpied" />
<property name="logFormatter">
<bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter">
<property name="loggingType" value="MULTI_LINE" />
<property name="sqlPrefix" value="SQL : "/>
</bean>
</property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:/mybatis-config.xml"></property>
<property name="mapperLocations" value="classpath:mappers/**/*.xml"></property>
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
</bean>
<context:component-scan base-package="패키지이름"/>
</beans>
3. Junit Test 를 실행하면 자동으로 게시글을 등록한다.
BoardCreateTestView
'국비학원 공부노트 > Spring MVC' 카테고리의 다른 글
[Spring MVC] 핸들러 인터셉터 (HandlerInterceptor)-로그인인증 (0) | 2022.04.14 |
---|---|
[Spring MVC] 댓글 구현(게시판 구현 후 ) (0) | 2022.04.14 |
[Spring MVC] 게시판 구현 (0) | 2022.04.13 |
[Spring MVC] DB 로그인, 로그아웃 구현 (0) | 2022.03.16 |
[Spring MVC] 기본동작 구현 (0) | 2022.03.15 |