высмеивать только один звонок одновременно с mockk - PullRequest
0 голосов
/ 14 сентября 2018

Я знаю, что для того, чтобы смоделировать, как метод отвечает, вы должны использовать

every { instanceX.methodB() } returns "42"

Я пытаюсь смоделировать итератор, для которого вы должны смоделировать 2 метода hasNext () и следующий(), если hasNext () возвращает true, всегда будет бесконечный цикл, если он возвращает false с начала, next () ничего не вернет.

Мой вопрос: есть ли способ издеваться над человеком?звонки один за другим с mockk, как вы можете сделать в mockito?Я ничего не нашел в документах.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2019

На отличном посту Насмешка не ракетостроение задокументированы две альтернативы:

returnsMany указывает количество значений, которые используются одно за другим, то есть первый соответствующий вызов возвращает первый элемент, второй возвращает второй элемент:

    every { mock1.call(5) } returnsMany listOf(1, 2, 3)

Вы можете достичь того же, используя конструкцию andThen:

    every { mock1.call(5) } returns 1 andThen 2 andThen 3
0 голосов
/ 14 сентября 2018

Используйте returnsMany или andThen конструкцию с / вместо return.

...