Ваш фрагмент кода не имеет смысла, поскольку вы вызываете service.getMetricsReports(date, null)
в своем тесте, но в вашем примере кода UserService
есть только метод getUserDTO
. Предполагая, что это всего лишь опечатка, вам нужно использовать совпадения, чтобы заставить макет работать в вашем when
.
Mockito.when(template.slice(any(Select.class), eq(UserDTO.class))).thenReturn(userDTO);
Это означает, что всякий раз, когда первый параметр является классом типа Select
, а второй равен UserDTO.class
, возвращайте userDTO
, если эти 2 параметра не соответствуют этим условиям, это будет return null
.
Вы также можете сделать так, чтобы он совпадал с точным Select
, предполагая, что он имеет переопределенный метод equals
. В случае, если вы отправляете null
pagingState
, то что-то вроде:
Select stubSelect = QueryBuilder.select().all()
.from("tbl_user");
stubSelect.where(QueryBuilder.eq(date, date));
stubSelect.setFetchSize(30);
Mockito.when(template.slice(eq(stubSelect), eq(UserDTO.class))).thenReturn(userDTO);