2014-06-09 2 views
0

스프링 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 그게 내가 피하고 싶습니다.

의 의미, 어떤 식 으로든 내가 SomeOtherClassprocessTask 방법 대신 processTask 방법은 무엇가 실제 코드를 실행하는 일부 기본 값을 반환 조롱 할 수 있는가? 내 JUnit 테스트 실행으로 현재

, 또한 SomeOtherClassprocessTask 메소드를 호출하고 processTask 내부의 코드는 실행하고 내가 피하고 싶은거야. 내가 거기에있는 코드 중 하나가 processTask jmockit을 사용하여 조롱에 의해 실행 싶지 않아?

이 작업을 수행 할 수 있습니까?

+0

Downvoters, 무엇이 잘못 되었습니까? 나에게 실수가 있다면 기꺼이 내 질문을 개선하게되어 기쁘다. 나는 아직도 물건을 조롱하는 법을 배우고있다. – john

+0

MockUp <> 예제를 참조하십시오. http://jmockit.googlecode.com/svn/trunk/www/tutorial/AnExample.html – Jayan

답변

0

이 같은 공개 무효 방법을 조롱 jmockit을 사용할 수 있습니다 -

new MockUp<SomeOtherClass>() { 
    @Mock 
    public void processTask(String value, List<Map<String, String>> mappings) throws Exception { 
     System.out.println("Hello World"); 
    } 
}; 

은 그냥 단위 테스트의 시작에서 모의 ​​이상 추가 할 수 있습니다.

+0

3 개의 메소드 중 하나가 void 반환 메소드 인 클래스가 주어지면 다른 2 개를 조롱합니다. 기대. 무효 반환 메서드 혼자 나는 1 테스트 케이스에서 사용할 수 없으므로 MockUp 사용할 수 없습니다. 이것을 달성하는 방법은 무엇입니까? –