Daniel
delayer
argumentCaptor<() -> Unit>().apply { whenever(delayer.delay(capture())).thenAnswer { firstValue() } }
delay(...)
argumentCaptor<() -> Unit>().apply { var invocationCount = 0 whenever(delayer.delay(capture())).thenAnswer { if(invocationCount < times) { ++invocationCount firstValue() } } }
Andreas Sinz
thenAnswer
public abstract OngoingStubbing<T> thenAnswer(org.mockito.stubbing.Answer<?> answer)
snowe
mockito-kotlin
Answer
class CountedAnswer<T>(invocationCount: Int, f: () -> T) : Answer<T> { private var counter = 0 override fun answer(InvocationOnMock invocation): T { if(counter < invocationCount) f() .... } //Usage delayer.delay(capture()).thenAnswer(CountedAnswer { firstValue() })
A modern programming language that makes developers happier.