Поведение метода проверки в kotlin -mockito - PullRequest
0 голосов
/ 07 мая 2020

Я придерживался 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   
    }
} 
...