코딩하는 문과생
[Spring] Spring 프레임워크(5) - Spring Test 본문
[JUnit4: 단위테스트 수행]
-
단위테스트를 지원해주는 프레임워크
-
단정메서드로 테스트 케이스 수행 결과를 판별 ex. assertEquals
-
테스트 지원하는 어노테이션 ex. @Text, @Before, @After
-
@Test메서드가 호출할 때마다 새로운 인스턴스를 생성하여 독립적인 테스트가 이루어진다.
-어노테이션
@Test: 해당 메소드가 테스트 단위이다. 다른 테스트와 독립적으로 실행된다.
@Ignore: 테스트 실행x
@Before, @After: 단위 테스트 수행전,후 공통적으로 실행되어야 하는 부분
@BeforeClass, @AfterClass: 모든 단위 테스트 시작과 전
-단정(assert) 메서드
assertEquals(a, b), assertArrayEquals(a, b) : 객체 a,b가 일치한지 확인
assertTrue(a): 조건 A가 참인가 확인
[spring-test: 자동으로 스프링 컨테이너 로딩]
-어노테이션
@RunWith(SpringJUnit4ClassRunner.class): 스프링 테스트하기 수월해짐
@ContextConfiguration: 스프링 빈 설정파일의 위치를 지정할 때 사용
@Autowired: 빈을 테스트
ex. 테스트, ArticleDAO의 메소드를 테스트할 예정
-ArticleDAO.java
@Repository
public class ArticleDAO {
public void insertArticle(Article article) {
System.out.println(article);
}
public Article selectArticleById(String articleId) {
Article article = new Article(10, "sijune", "test", "test,test");
return article;
}
}
-pom.xml 의존성 추가
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.9.RELEASE</version>
<scope>test</scope>
</dependency>
-ArticleDAOTest.java
@WebAppConfiguration
public class ArticleDAOTest {
private ApplicationContext ctx;
@Before
public void setup() {
ctx = new FileSystemXmlApplicationContext(
"file:src/main/webapp/WEB-INF/spring/*.xml");
}
@Test
public void testSelectArticleById() {
ArticleDAO dao = ctx.getBean("articleDAO", ArticleDAO.class);
Article article = dao.selectArticleById(null);
Assert.assertTrue(article.getAuthor().equals("sijune"));
}
}
-ArticleDAOTest.java 수정
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/servlet-context.xml")
@WebAppConfiguration
public class ArticleDAOTest {
@Autowired
private ArticleDAO dao;
@Test
@Ignore
public void testInsertArticle() {
dao.insertArticle(null);
}
@Test
public void testSelectArticleById() {
Article article = dao.selectArticleById(null);
Assert.assertTrue(article.getAuthor().equals("sijune"));
}
}

'웹 프로그래밍 > Spring' 카테고리의 다른 글
| [Spring] Spring 프레임워크(7) - Context분리와 전략 (0) | 2020.03.10 |
|---|---|
| [Spring] Spring 프레임워크(6) - 데이터 접근 기술 (0) | 2020.03.09 |
| [Spring] Spring 프레임워크(4) - static 파일처리, 파일 업로드 (0) | 2020.03.08 |
| [Spring] Spring 프레임워크(3) - Rest API (0) | 2020.03.08 |
| [Spring] Spring 프레임워크(2) - Layer와 MVC패턴 (0) | 2020.03.08 |