스프링 MVC 컨트롤러 용 junit 테스트를 작성하려고하는데 지금까지 성공적으로 수행 할 수있었습니다. 나는 jmockit과 함께 Spring Mock을 사용하고있다. 다음은 jmockit을 사용하여 public void 메소드를 모의하는 방법은 무엇입니까?
가DataController
컨트롤러의 내 방법입니다 -
SomeOtherClass
에서 이제
@RequestMapping(value = "processWork", method = RequestMethod.GET)
public @ResponseBody
DataResponse processWork(@RequestParam("conf") final String value, @RequestParam("dc") final String dc) {
// .. some code here
SomeOtherClass modifier = new SomeOtherClass(zookClient);
List<Map<String, String>> mappings = getMappings(dc);
modifier.processTask(value, mappings);
// .. some code here
}
, processTask
방법이 같다 - 아래
public void processTask(String value, List<Map<String, String>> mappings) throws Exception {
// some code here
}
내가있는
processWork
방법에 대해 쓴 내 JUnit 테스트입니다
DataController
클래스
private MockMvc mockMvc;
@Test
public void test03_processWork() throws Exception {
mockMvc.perform(
get("/processWork").param("conf", "shsysysys").param("dc", "eux")).andDo(print()).andExpect(status().isOk());
}
문제 설명 : - 나는 test03_processWork
단위 테스트를 실행하고 있습니다 때마다
지금이 가진 문제는, 그것은 (괜찮습니다) 내 컨트롤러의 processWork
방법으로 이동 한 후이 processTask
를 호출 방법을 내 SomeOtherClass
그게 내가 피하고 싶습니다.
의 의미, 어떤 식 으로든 내가 SomeOtherClass
의 processTask
방법 대신 processTask
방법은 무엇가 실제 코드를 실행하는 일부 기본 값을 반환 조롱 할 수 있는가? 내 JUnit 테스트 실행으로 현재
SomeOtherClass
의
processTask
메소드를 호출하고
processTask
내부의 코드는 실행하고 내가 피하고 싶은거야. 내가 거기에있는 코드 중 하나가
processTask
jmockit을 사용하여 조롱에 의해 실행 싶지 않아?
이 작업을 수행 할 수 있습니까?
Downvoters, 무엇이 잘못 되었습니까? 나에게 실수가 있다면 기꺼이 내 질문을 개선하게되어 기쁘다. 나는 아직도 물건을 조롱하는 법을 배우고있다. – john
MockUp <> 예제를 참조하십시오. http://jmockit.googlecode.com/svn/trunk/www/tutorial/AnExample.html – Jayan