Я придерживался com.nhaarman.mockitokotlin2.check
метода, mockito-kotlin
версия 2.1.0
Я пишу тест, который проверяет, что метод моего объекта вызывается с указанием c list
поэтому я пишу тестовый код:
verify(a).processList(check {
// list verification should be here
print(it)
})
Но когда я его выполняю, я вижу, что print(it)
выполнялся дважды и для всего списка. Предположим, что processList
был вызван со списком (1,2,3) в качестве параметра, поэтому приведенный выше тест будет печатать [1, 2, 3][1, 2, 3]
Я не могу понять, почему print(it)
выполняется дважды. Если он содержит ссылку на весь список - его нужно выполнить только один раз. Это ошибка в mockito или я что-то упускаю?
Вот полный код:
@Test
fun tt() {
a= spy(A())
a.execute()
verify(a).processList(check {
print(it)
})
}
class A {
fun execute() {
list = getList()
processList(list)
}
fun getList() = listOf(1, 2, 3)
fun processList(list: List<Int>) {
/// process
}
}