2017-02-13 17 views
2

Я пишу тестовый пример JUnit с использованием Mockito, и я получаю исключение NullPointerException.JUnit test case with Mockito throws NullPointerException

Кодекс деловой

public XRImage getImage(String imgId, List tagList) { 
    _paramsMap.printContent(); 
    return _paramsMap.getImage(imgId, tagList); 
} 

Код проверки

@Test 
public void getImageTest() { 
    String imgId = new String("Test"); 
    List requiredTags = null; 
    XRImage xRImage = Mockito.mock(XRImage.class); 
    ImageParamsMap imageParamsMap = Mockito.mock(ImageParamsMap.class); 
    imageParamsMap.addImage(imgId); 
    when(imageParamsMap.getImage(imgId, requiredTags)).thenReturn(Mockito.mock(XRImage.class)); 
    XRImage getImage1 = acquisitionParamsManager.getImage(imgId, requiredTags); 
    assertNotNull(getImage1); 
} 
+1

Как вы инициализируете свой 'purchaseParamsManager'? Вы должны ввести mock в этот объект –

+0

Я сделал это с помощью @InjectMocks – bhavya

ответ

0

Easy:

List requiredTags = null; 

...

XRImage getImage1=acquisitionParamsManager.getImage(imgId,requiredTags); 

Вы передаете в нуль для этого списка! Попробуйте вместо . И если это java.util.List; вы на самом деле создаете необработанный тип; и вместо этого вы должны сделать что-то вроде List<Whatever>!

0

Ожидаете ли вы использовать объект-объект imageParamsMap вместо переменной экземпляра _paramsMap?

Если это так, вам нужно как-то установить imageParamsMap на acquisitionParamsManager перед вызовом метода. Например, предположим, был сеттер доступен:

acquisitionParamsManager.setParamsMap(imageParamsMap); 
XRImage getImage1 = acquisitionParamsManager.getImage(imgId, requiredTags); 

Mock инъекции был бы другой вариант, если нет сеттер не доступно. Помимо этого, трудно отлаживать без дополнительного кода и/или номеров строк, где было выбрано исключение.


Unrelated, но называя addImage() в тестовом случае не на самом деле чего-то добиться. Если вы хотите проверить, вызван ли этот метод, попробуйте добавить это заявление после подтверждения:

verify(imageParamsMap).addImage(imgId); 

 Смежные вопросы

  • Нет связанных вопросов^_^