2019. 12. 5. 00:27ㆍ프로그래밍 언어/Java
Java Unit Test 교육
2019. 12. 4 (목) 13:30 ~ 17:30
남서울센터 6층 레츠런파크
수업자료
https://github.com/madosa/lecture-junit
lecture-junit/Java-Spring Unit Test.md 파일 확인
자바 테스트 자동화 관련 자료
https://www.slideshare.net/gyumee/ss-90206560
III. 테스트 코드 작성
1. 디렉토리 및 파일 생성
src 폴더 아래에
test (Directory)
ㄴjava (Test Sources Root)
ㄴcom.interpark.lecture.junit.member (Package)
ㄴMemberInitegrationTest.java (Java Class)
위와 같이 만듭니다.
java (Test Sources Root)는 일반 Directory로 생성 후
[java 폴더 위에서 오른쪽 버튼] - [Mark Directory as] - [Test Sources Root]를 클릭하면 변경됩니다.
2. Annotation
껍데기만 있는 MemberIntegrationTest.java 파일에서
클래스 위에 필요한 어노테이션을 달아줍니다.
(자세한 설명은 수업자료를 참고)
3. 테스트 코드 작성
MemberController.java를 참고하여 테스트 코드를 작성합니다.
getMember, createMember, modifyMember, removeMember를 테스트하기 위해서
MemberIntegrationTest.java 파일에
testGetMembers, testGetMember, testCreateMember, testModifyMember, testRemoveExhibition
라는 이름으로 테스트 메소드를 만듭니다.
package com.interpark.lecture.junit.member;
import com.interpark.lecture.junit.LectureJunitApplication;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.WebApplicationContext;
import java.util.Collections;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@RunWith(SpringJUnit4ClassRunner.class)
@Transactional
@Rollback(true)
@ActiveProfiles("local")
@TestPropertySource("classpath:application-local.properties")
@ContextConfiguration(classes = LectureJunitApplication.class)
@WebAppConfiguration
public class MemberIntegrationTest {
@Autowired
private WebApplicationContext webApplicationContext;
private MockMvc mockMvc;
private final MediaType REST_API_MEDIA_TYPE =
new MediaType(MediaType.APPLICATION_JSON, Collections.singletonMap("charset", "UTF-8"));
@Before
public void setUp() throws Exception {
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
}
@After
public void tearDown() throws Exception {
}
@Test
public void testGetMembers() throws Exception {
ResultActions resultActions =
mockMvc.perform(get("/lecture-junit/v1/members")
.accept(REST_API_MEDIA_TYPE));
resultActions.andDo(print())
.andExpect(status().isNotFound())
.andExpect(jsonPath("$.response.body.docs.error_code").value("CMN0N03-404"));
}
@Test
public void testGetMember() throws Exception {
}
@Ignore
@Test
public void testCreateMember() throws Exception {
}
@Ignore
@Test
public void testModifyMember() throws Exception {
}
@Ignore
@Test
public void testRemoveExhibition() throws Exception {
}
}
관련 포스트
참고
tech-wiki : 공통 라이브러리 개발
'프로그래밍 언어 > Java' 카테고리의 다른 글
IntelliJ에서 Spring Boot 프로젝트 생성하기 (0) | 2020.09.05 |
---|---|
REST Template의 Idempotent(멱등) (0) | 2020.08.12 |
Java Unit Test 교육 내용 정리 (2) (0) | 2019.12.04 |
Java Unit Test 교육 내용 정리 (1) (0) | 2019.12.04 |