Исключение Mockito, когда значение аргумента объекта соответствует шаблону - PullRequest
0 голосов
/ 14 января 2019

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

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

Попытка проверить это с помощью Mockito:

    doThrow(DefaultException.class).when(service).foo(any(Path.class), any(Path.class));

, где, очевидно, я пропускаю часть, в которую было бы выброшено исключение, например, в пути есть какое-то определенное регулярное выражение, поскольку на данный момент он выдает исключение для каждого файла.

Есть ли способ заменить any(Path.class) чем-то, что отвечало бы моим потребностям?

1 Ответ

0 голосов
/ 14 января 2019

Вы можете использовать:

    Matchers.argThat(new ArgumentMatcher<Path>() {
        @Override
        public boolean matches(Object o) {
            Path p = (Path) o;
            if(p.toString().equals("some")) {
                return true;
            }else {
                return false;
            }
        }
    }

вместо any(Path.class).

PS: p.toString().equals("some") является условием образца. Замените его реальным.

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