Тестирование уровня обслуживания в Spring Boot с использованием Mockito - PullRequest
0 голосов
/ 05 мая 2020

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

Мой тестовый пример:

@InjectMocks
private EmployeeService employeeService;

@Mock
private EmployeeRepository employeeRepository;     

@Test
public void getActionFromEmployeeIdTest() throws ActionException {
 //setup     
 when(employeeRepository.getActionsByEmployeeId(anyLong()).thenReturn(EmployeeEntity);

 // exercise
 List<Employee> result = employeeService.getActionsByEmployeeIdService(101);

 //verify
 assertEqual(EmployeeEntity, result);
}

Уровень обслуживания:

@Service
public class EmployeeService {
    @Override
    public List<EmployeeUser> getActionsByEmployeeIdService(long employeeId)  {
        Employee employee = employeeRepository.findByEmployeeIdId(employeeId);
        List<EmployeeUser> actions = employeeUserRepository.getActionsByEmployeeId(employeeId);
        return actions;
}

Уровень репозитория:

@Repository
public interface EmployeeUserRepository extends JpaRepository<EmployeeUser,Long> {
    @Transactional
    @Query(value = "Select e from EmployeeUser e where e.employeeId = :employeeId" )
    List<EmployeeUser> getActionsByEmployeeId(@Param("employeeId") long employeeId);
}

Я использую @InjectMocks для employeeService и @Mock для employeeRepository.

result, похоже, возвращается ноль. Могу ли я как-нибудь вернуть в тесте ненулевое значение?

1 Ответ

0 голосов
/ 05 мая 2020

Вы используете ссылку на employeeRepository для вызова метода getActionssByEmployeeId (anyLong ()).

when(employeeRepository.getActionssByEmployeeId(anyLong()).thenReturn(EmployeeEntity);

Но при вызове службы этот метод вызывается employeeUserRepository

List<EmployeeUser> actions = employeeUserRepository.getActionsByEmployeeIdId(employeeId);

Пожалуйста, проверьте это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...