diff --git a/mockito-kotlin/src/main/kotlin/org/mockito/kotlin/KStubbing.kt b/mockito-kotlin/src/main/kotlin/org/mockito/kotlin/KStubbing.kt index aaf03b55..3ea1d88d 100644 --- a/mockito-kotlin/src/main/kotlin/org/mockito/kotlin/KStubbing.kt +++ b/mockito-kotlin/src/main/kotlin/org/mockito/kotlin/KStubbing.kt @@ -30,6 +30,7 @@ import kotlinx.coroutines.runBlocking import org.mockito.Mockito import org.mockito.exceptions.misusing.NotAMockException import org.mockito.stubbing.OngoingStubbing +import org.mockito.stubbing.Stubber import kotlin.reflect.KClass @@ -85,4 +86,8 @@ class KStubbing(val mock: T) { ): OngoingStubbing { return runBlocking { Mockito.`when`(mock.m()) } } + + fun Stubber.on(methodCall: T.() -> Unit) { + this.`when`(mock).methodCall() + } } \ No newline at end of file diff --git a/tests/src/test/kotlin/test/StubberTest.kt b/tests/src/test/kotlin/test/StubberTest.kt index eb6e28cd..81ac7f23 100644 --- a/tests/src/test/kotlin/test/StubberTest.kt +++ b/tests/src/test/kotlin/test/StubberTest.kt @@ -100,4 +100,13 @@ class StubberTest : TestBase() { mock.go() } } + + @Test + fun testStubberOnBlockExtension() { + val mock = mock { + doReturn("Test").on { stringResult() } + } + + expect(mock.stringResult()).toBe("Test") + } } \ No newline at end of file