2017-01-05 9 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の出所がないと確信が持てませんが、これは最も可能性の高い問題のようです。

関連する問題