Может ли Mockito захватывать аргументы метода, вызываемого несколько раз?

Python, похоже, имеет хорошее решение: 11.9.3. Запрос размера выходного терминала . Я бы не задерживал дыхание, ожидая, что это будет доступно в основной Java, но вы могли бы использовать Jython , чтобы сделать доступную функциональность Python.

385
задан Eric Wilson 12 May 2011 в 16:57
поделиться

1 ответ

В первую очередь: необходимо всегда импортировать mockito помехи, этот путь код будет намного более читаемым (и интуитивным) - примеры кода ниже требуют, чтобы это работало:

import static org.mockito.Mockito.*;

В проверении () метод можно передать ArgumentCaptor для уверения выполнения в тесте и ArgumentCaptor для оценки аргументов:

ArgumentCaptor<MyExampleClass> argument = ArgumentCaptor.forClass(MyExampleClass.class);
verify(yourmock, atleast(2)).myMethod(argument.capture());

List<MyExampleClass> passedArguments = argument.getAllValues();

for (MyExampleClass data : passedArguments){
    //assertSometing ...
    System.out.println(data.getFoo());
}

список всех передаваемых аргументов во время Вашего теста доступен через argument.getAllValues () метод.

сингл (в последний раз названный) значение аргумента доступно через argument.getValue () для дальнейшего управления / проверка или независимо от того, что Вы хотите сделать.

0
ответ дан 22 November 2019 в 23:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: