Можно ли "извлечь" аргументы, используемые через Mockito.when? - PullRequest
0 голосов
/ 01 ноября 2011

Можно ли извлечь / сохранить, какие аргументы использовались при использовании Mockito.when?

Например, этот псевдокод:

Mockito.when(mock.someMethod(**any string**)).thenReturn(print(** any string **));

печать будет:

public void print(String s) {
    System.out.println(s);
}

Что можно использовать следующим образом:

Person mockPerson = ...

mockPerson.setName("John");

Что может привести к тому, что «Джон» будет напечатан на стандартный вывод.

Может быть, неудачный пример, но я хочу "сохранить" / "использовать" любые аргументы, с которыми вызывается mocked-метод.

Дополнительный вопрос: если нет, какие другие платформы тестирования могут сделать это.

Ответы [ 2 ]

2 голосов
/ 01 ноября 2011

ArgumentCaptor документация может быть интересной для вас.

1 голос
/ 01 ноября 2011

Вот то, что вы ищете. Создайте пользовательский ответ, который использует цель вызова.

 when(mock.someMethod(10)).thenAnswer(new Answer<Integer>() {
 public Integer answer(InvocationOnMock invocation) throws Throwable {
     return (Integer) invocation.getArguments()[0];
 }

}

Ссылка на документы Mockito: http://docs.mockito.googlecode.com/hg/latest/org/mockito/stubbing/OngoingStubbing.html#then%28org.mockito.stubbing.Answer%29

...