2013-06-21 4 views
1

withcapture로 jmockit에서 개체를 캡처하는 것이 확인되지 않습니다. 어떤 도움이 필요합니까?JMockit withCapture가 작동하지 않습니다.

@Injectable 
private API _api; 

@Tested 
private ServiceImpl _service; 

@Test 
public void test(){ 
    new Verifications() { 
     { 
      VirtualUser user; 
      _api.add(user = withCapture()); 
      Assert.assertEquals("1", user.getId()); 
      Assert.assertEquals("user", user.getUsername()); 
     } 
    }; 
    _service.add("1","user"); 
} 

예외 : user.getId()의 널 포인터.

+0

실행 가능한 테스트를 표시 할 수 있습니까? 이 부분은'_api'가 조롱 된 곳을 보여주지 않습니다. –

+0

@ Rogério 여기가 조롱입니다. –

+0

고마워, 나는 지금 실수를 본다. –

답변

8

확인 블록 (new Verifications() { ... })은이 테스트중인 코드를 실행 한 후에 이됩니다. 예제 테스트에서는 검증이 실행되기 때문에 그 순간에 user 변수에 캡처 할 내용이 없습니다. 따라서 null으로 유지됩니다. 검증 블록을 테스트 메소드의 끝으로 이동하기 만하면됩니다.

관련 문제