Как инициализировать макет объекта, чтобы я не получил NullPointerException - PullRequest
0 голосов
/ 14 января 2020

Итак, я пишу юнит-тесты с Mockito , и у меня есть этот метод

@Mock
private Kod kodMock ; //kod takes an int as argument

@Test
public void testSprawdzCzyKodPoprawny() {

    given(kodMock.sprawdzCzyPoprawny(new Kod (anyInt()))).willReturn(true);

    boolean result = klient.sprawdzCzyKodPoprawny(new Kod (123),system);

    assertTrue(result);   
}

И я продолжаю получать NullPointerException, потому что kodMock равно нулю. Как мне это инициализировать, чтобы метод, описанный ниже, работал правильно?

Я попытался просто Kod kodMock = new Kod (123);, но затем я получил Misplaced or misused argument.

1 Ответ

0 голосов
/ 14 января 2020

Я думаю, что вам не хватает нескольких вещей. Во-первых, вам нужно инициализировать MockitoAnnotations для тестового класса. Затем, я думаю, что вы, возможно, делаете ложную настройку фиктивной функции. Я надеюсь, что следующее работает для вас.

@Mock
private Kod kodMock; 

@Test
public void testSprawdzCzyKodPoprawny() {
    MockitoAnnotations.initMocks(this);
    when(kodMock.sprawdzCzyPoprawny()).thenReturn(true);

    boolean result = klient.sprawdzCzyKodPoprawny(kodMock, system);
    assertTrue(result);   
}
...