diff --git a/mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/Mockito.kt b/mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/Mockito.kt index 379d2186..07e20179 100644 --- a/mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/Mockito.kt +++ b/mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/Mockito.kt @@ -224,6 +224,8 @@ fun OngoingStubbing.doThrow(t: Throwable, vararg ts: Throwable): OngoingS infix fun OngoingStubbing.doThrow(t: KClass): OngoingStubbing = thenThrow(t.java) fun OngoingStubbing.doThrow(t: KClass, vararg ts: KClass): OngoingStubbing = thenThrow(t.java, *ts.map { it.java }.toTypedArray()) +infix fun OngoingStubbing.doAnswer(answer: (InvocationOnMock) -> T?): OngoingStubbing = thenAnswer(answer) + fun mockingDetails(toInspect: Any): MockingDetails = Mockito.mockingDetails(toInspect)!! fun never(): VerificationMode = Mockito.never()!! fun notNull(): T? = Mockito.notNull() diff --git a/mockito-kotlin/src/test/kotlin/test/MockitoTest.kt b/mockito-kotlin/src/test/kotlin/test/MockitoTest.kt index ce57d620..237a2248 100644 --- a/mockito-kotlin/src/test/kotlin/test/MockitoTest.kt +++ b/mockito-kotlin/src/test/kotlin/test/MockitoTest.kt @@ -488,6 +488,34 @@ class MockitoTest : TestBase() { } } + @Test + fun testMockStubbing_doAnswer() { + /* Given */ + val mock = mock { + on { stringResult() } doAnswer { "result" } + } + + /* When */ + val result = mock.stringResult() + + /* Then */ + expect(result).toBe("result") + } + + @Test + fun testMockStubbing_doAnswer_withArgument() { + /* Given */ + val mock = mock { + on { stringResult(any()) } doAnswer { "${it.arguments[0]}-result" } + } + + /* When */ + val result = mock.stringResult("argument") + + /* Then */ + expect(result).toBe("argument-result") + } + @Test fun mock_withCustomName() { /* Given */