обратные вызовы mockito и получение значений аргументов

Мне не удалось заставить Mockito захватывать значения аргументов функции! Я издеваюсь над индексом поисковой системы, и вместо построения индекса я просто использую хэш.

// Fake index for solr
Hashmap fakeIndex;

// Add a document 666 to the fakeIndex
SolrIndexReader reader = Mockito.mock(SolrIndexReader.class);

// Give the reader access to the fake index
Mockito.when(reader.document(666)).thenReturn(document(fakeIndex(666))

Я не могу использовать произвольные аргументы, потому что я проверяю результаты запросов (то есть, какие документы они возвращают). Точно так же я не хочу указывать конкретное значение и иметь строку для каждого документа!

Mockito.when(reader.document(0)).thenReturn(document(fakeIndex(0))
Mockito.when(reader.document(1)).thenReturn(document(fakeIndex(1))
....
Mockito.when(reader.document(n)).thenReturn(document(fakeIndex(n))

Я просмотрел раздел обратных вызовов на странице Использование Mockito . К сожалению, это не Java, и я не смог получить собственную интерпретацию этого для работы на Java.

РЕДАКТИРОВАТЬ (для пояснения): Как заставить Mockito захватить аргумент X и передать его в мою функцию? Я хочу, чтобы в функцию было передано точное значение (или ссылку) X.

Я не хочу перечислять все случаи, и произвольный аргумент не будет работать, потому что я проверяю разные результаты для разных запросов.

На странице Mockito написано

val mockedList = mock[List[String]]
mockedList.get(anyInt) answers { i => "The parameter is " + i.toString } 

Это не java, и я не знаю, как перевести на java или передать то, что произошло, в функцию.

69
задан nflacco 9 July 2011 в 00:33
поделиться