Как использовать Mockito для имитации класса таким образом, чтобы он прошел проверку javax - PullRequest
0 голосов
/ 19 июня 2020

Учитывая класс:

public class Foo {

    @NotNull
    @Valid
    private Bar bar;    

    // plus getter/setter
}

Предположим, я хочу проверить, что после установки поля bar класс теперь действителен.

В моем тесте я используя Mockito для получения поддельного экземпляра Bar. Я хочу, чтобы этот mockBar был действительным, и мне не приходилось беспокоиться о конкретных проверках полей, которые может содержать Bar.

Есть ли способ Mockito сделать mockBar пройти проверку? Вот как я вызываю валидацию в своем тесте:

Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
assertTrue(new ArrayList<>(validator.validate(foo)).isEmpty());

javax.validation.Validator будет рекурсивно проверять все поля foo, поэтому в какой-то момент валидатор что-то сделает с mockBar. Что мне нужно высмеять, чтобы вернуть его как действительный?

...