스프링 프레임워크에서 만든 클래스(@Controller, @Service, @Repository,
@Component 등이 붙은 클래스)를 테스트 하는 모듈
단위 테스트, 통합 테스트를 지원하기 위한 매커니즘이나 편리한 기능을 제공
- Junit 테스트 프레임워크를 사용 -> 스프링 DI 컨테이너를 동작시키는 기능
- 트랜잭션 테스트를 상황에 맞게 제어하는 기능
- 애플리케이션 서버를 사용하지 않고 스프링 MVC 동작을 재현하는 기능
- RestTemplate 이용 -> HTTP 요청에 대한 임의 응답을 보내는 기능
<dependency> <groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId> <version>${org.springframework-version}</version> <scope>test</scope>
</dependency>
<dependency> <groupId>junit</groupId>
<artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope>
</dependency>
package org.tukorea.test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.tukorea.di.domain.StudentVO;
import org.tukorea.di.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:/applicationContext.xml")
public class MemberTest { @Autowired
MemberService memberService;
@Test
public void testReadMember( ) throws Exception {
StudentVO member = memberService.readMember("hansol");
System.out.println(member);
}
}
package org.tukorea.test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.tukorea.di.domain.StudentVO;
import org.tukorea.di.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/applicationContext.xml")
public class MemberTest {
@Autowired
MemberService memberService;
//@Test
public void testAddMember( ) throws Exception {
String strID = "JUnit1";
StudentVO vo = new StudentVO();
vo.setId(strID);
vo.setPasswd(strID);
vo.setUsername(strID);
vo.setSnum(strID);
memberService.addMember(vo);
StudentVO member = memberService.readMember("JUnit");
System.out.println(member);
}
@Test
public void testReadMember( ) throws Exception {
StudentVO member = memberService.readMember("jiyoon");
System.out.println(member);
}
}
package org.tukorea.test;
import java.sql.Connection;
import org.slf4j.Logger;
import javax.sql.DataSource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/applicationContext.xml")
public class DataSourceTest {
@Autowired
private DataSource ds;
private static Logger logger = LoggerFactory.getLogger(DataSourceTest.class);
@Test
public void testConntection() throws Exception {
try(Connection con = ds.getConnection()) {
logger.info("con.toString() : " + con.toString());
}catch(Exception e) {
e.printStackTrace();
}
}
}
package org.tukorea.test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.LoggerFactory;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/applicationContext.xml")
public class JdbcTemplateTest {
@Autowired
private JdbcTemplate jt;
private static Logger logger =LoggerFactory.getLogger(DataSourceTest.class);
@Test
public void selectQuery() throws Exception {
try {
int count = jt.queryForObject("SELECT COUNT(*) FROM STUDENT", Integer.class);
logger.info("Count :" + count);
}
catch(Exception e) {
e.printStackTrace();
}
}
}