Я не могу издеваться над хранилищем с Mockito - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь смоделировать хранилище, но оно не работает (до того, как оно заработало).

@Mock
public UserRepository mockedUserRepository;

....

@InjectMocks
ClassDAOImpl daoImplSUT;

....

@Test
public void shouldTest() {
  Mockito.when(mockedUserRepository.findAll()).thenReturn(operators);

  List<User> users= daoImplSUT.getAllUsers();
}

Я не знаю, почему не работает. Когда я отлаживаю, я могу проверить, что макет репозитория является нулевым. Затем я получаю исключение NullPointerException.

Вы можете мне помочь? Большое вам спасибо.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

У вас нет инициализации макета.

  1. JUnit 5: добавьте MockitoAnnotations.initMocks(this) в setUp перед каждым тестом или @ExtendWith(MockitoExtension.class) аннотацию в классе теста
  2. JUnit 4: Add MockitoAnnotations.initMocks(this) в настройке перед каждым тестом или @RunWith(MockitoJUnitRunner.class) аннотации в тестовом классе
0 голосов
/ 27 февраля 2020

Для Junit 4:

Используйте @RunWith (MockitoJunitRunner.class) на вашем тестовом классе:

import org.mockito.junit.MockitoJUnitRunner;


@RunWith(MockitoJUnitRunner.class)
public class ExampleTest {
    //...
}

см. Документацию для получения дополнительной информации https://www.javadoc.io/doc/org.mockito/mockito-core/2.2.28/org/mockito/junit/MockitoJUnitRunner.html

Для Junit 5:

Используйте @ExtendWith (MockitoExtension.class) для себя Тестовый класс:

@ExtendWith(MockitoExtension.class)
public class ExampleTest {
    //...
}
...