Использовать предикат в качестве аргумента для юнит-тестирования - PullRequest
0 голосов
/ 19 февраля 2019

В настоящее время у меня есть функция, которая использует предикат типа данных в качестве одного из параметров для функции.См. Ниже:

@RequestMapping(method = GET)
function getAll(WebRequest request, @QuerydslPredicate(root = Image.class) Predicate predicate, @PageableDefault Pageable pageable) {
   return "test"
}

Тем не менее, в настоящее время я пишу модульный тест для проверки правильности этой функции, и мне трудно пытаться передать аргумент для предиката в эту функцию, чтобы я могтестовое задание.Может кто-нибудь, пожалуйста, помогите ??Это тестовая функция, которую я имею до сих пор:

 @RunWith(MockitoJUnitRunner.class)
 public class ImageTest {

 private Predicate predicate;

 @InjectMocks
ImageController imageController = new ImageController(); 

 @Test
public void testGetAll() throws Exception {
    WebRequest webRequest = mock(WebRequest.class);

    ResponseEntity responseEntity = ok(new PagedResponse<>(page));
    when(imageController.getAll(Mockito.eq(webRequest), Mockito.eq(predicate), any(Pageable.class)))
            .thenReturn(responseEntity);
   }
}

В этом случае предикат является нулевым, потому что я не уверен, что установить в качестве аргумента

1 Ответ

0 голосов
/ 19 февраля 2019

Вы используете any(Pageable.class) в качестве последнего аргумента.

Вам необходимо использовать Mockito.eq() для двух других аргументов:

when(imageController.getAll(Mockito.eq(webRequest), Mockito.eq(predicate), any(Pageable.class)))
  .thenReturn(responseEntity);
...