2017-01-05 3 views
0

안녕하세요 다음과 같은 테스트를하고 난 그것 NullPointerException을주는 작동 할 수 없습니다 :mockito의 NullPointerException이

방법 시험 :이 방법의

private ResponseEntity getDefaultCart(HttpEntity<String> request, String zoomQuery) { 
    LOG.info("Get user's default cart with zoom query" + zoomQuery); 
    String defaultCartUrl = cortexApiUrl + Constants.CARTS + scope + Constants.DEFAULT + Constants.ZOOM + zoomQuery; 
    return baseRepository.getCall(defaultCartUrl, request); 
} 

Junit와 :

@Test 
public void testUpdateCart() { 
    MockitoAnnotations.initMocks(this); 
    cortexRepository= new CortexRepositoryImpl("https://abc.juy", "ocean", baseRepositoryImpl); 
    Mockito.when(baseRepositoryImpl.createRequestHeaders("guestId")).thenReturn(httpHeaders); 
    JSONObject orderDetails = createCortexCreateOrderObject("cortexCreateOrderResponse.json"); 
    ResponseEntity<JSONObject> entity=new ResponseEntity<JSONObject>(orderDetails,HttpStatus.ACCEPTED); 
    HttpEntity<String> request = new HttpEntity<String>(httpHeaders); 
    Mockito.when(baseRepositoryImpl.getCall("http://www.abc.hyh", request)).thenReturn(entity); 
    cortexRepository.updateCart(updateCartRequest); 
} 

방법 getDefaultCartupdateCart 메서드에서 호출합니다. orderDetails 개체가 올바르게 채워집니다.

NUllPointer가 줄을 : baseRepository.getCall(defaultCartUrl, request) 줄입니다.

제안 사항 ??

답변

0

baseRepository.getCall(defaultCartUrl, request);을 호출 할 때 BaseRepositoryImpl 인스턴스를 사용하는 것이 new CortexRepositoryImpl("https://abc.juy", "ocean", baseRepositoryImpl);으로 전달되는 동일한 인스턴스가 아니라고 생각합니다.

CortexRepositoryImpl에 새 인스턴스를 만들지 않고 실제로 생성자에 전달 된 개체를 사용하고 있는지 확인하십시오.

나는 CortexRepositoryImpl의 출처가 없으면 확신 할 수 없지만 이것이 가장 큰 문제인 것처럼 보입니다.