잡동사니
[전자정부프레임워크] JUnit을 활용한 테스크 케이스 구현 본문
안녕하세요. yeTi입니다.
오늘은 전자정부프레임워크 환경에서 JUnit을 활용하여 테스트 케이스를 만드는 방법에 대해서 알아보겠습니다.
사용환경
전자정부프레임워크 : 3.5.1
- pom.xml에 다음 사항 추가
- <!-- For Mock Test -->
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path-assert</artifactId>
<version>0.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.9.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.2.3.RELEASE</version>
<scope>test</scope>
</dependency> - 테스트 케이스를 만들고자 하는 클래스에서 우클릭 -> New -> JUnit Test Case 선택
- Next -> 테스트 케이스를 만들고자하는 함수를 선택 후 Finish
- Test 클래스 상단에 다음 사항 추가
- import static org.junit.Assert.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; - webAppContextSetup을 활용하기 위해 클래스에 어노테이션 추가
- @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"file:src/main/webapp/WEB-INF/mvc-config.xml"
, "file:src/main/resources/spring/context-common.xml"
, "file:src/main/resources/spring/context-mapper.xml"
, "file:src/main/resources/spring/context-datasource.xml"
})
@WebAppConfiguration
public class ControllerTest {
@Autowired
private WebApplicationContext wac;
@InjectMocks
private Controller Controller;
private MockMvc mockMvc;
@Before
public void setup() {
// Process mock annotations
MockitoAnnotations.initMocks(this);
this.mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
} - 다음과 같이 테스크 케이스 코드 입력
- this.mockMvc.perform(
post(url)
.param("param1", "value1")
.param("param2", "value2")
).andExpect(
status().isOk()
).andExpect(
jsonPath("$.data[0].max_num_user").exists()
).andExpect(
jsonPath("$.data[0].caution").exists()
); - 멀티파트는 다음과 같이 처리
- File file = new File("c:/TEMP/sample.jpg");
FileInputStream fileInputStream = new FileInputStream(file);
MockMultipartFile mockMultipartFile = new MockMultipartFile("files", file.getName(), "multipart/form-data", fileInputStream);
this.mockMvc.perform(
MockMvcRequestBuilders.fileUpload(url)
.file(mockMultipartFile)
.param("param1", "value1")
); - 테스트 수행
- 테스트 케이스 클래스(Ex :: ControllerTest) 우큭릭 -> Run As -> JUnit Test
'IT > Java' 카테고리의 다른 글
[AWT] 텍스트 회전하기 (0) | 2016.10.31 |
---|---|
[전자정부프레임워크] 트랜젝션 관리 (4) | 2016.06.23 |
[전자정부프레임워크] 다국어 설정 (0) | 2016.06.13 |
[전자정부프레임워크] 서버단에서 JSON으로 반환하기 (0) | 2016.05.09 |
[전자정부프레임워크] log4j2 사용하기 (1) | 2016.05.04 |
Comments