Skip to content

Commit 215b383

Browse files
authored
Merge pull request #220 from nhaarman/stubbing-existing-mock
Add function to stub an existing mock with lambda syntax
2 parents 936a3fc + 688f90b commit 215b383

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed

mockito-kotlin/src/main/kotlin/com/nhaarman/mockitokotlin2/Mockito.kt

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,12 @@
2525

2626
package com.nhaarman.mockitokotlin2
2727

28-
import org.mockito.InOrder
29-
import org.mockito.Incubating
30-
import org.mockito.MockSettings
31-
import org.mockito.MockingDetails
32-
import org.mockito.Mockito
28+
import org.mockito.*
3329
import org.mockito.invocation.InvocationOnMock
3430
import org.mockito.listeners.InvocationListener
3531
import org.mockito.mock.SerializableMode
36-
import org.mockito.stubbing.Answer
37-
import org.mockito.stubbing.OngoingStubbing
38-
import org.mockito.stubbing.Stubber
39-
import org.mockito.verification.VerificationMode
40-
import org.mockito.verification.VerificationWithTimeout
32+
import org.mockito.stubbing.*
33+
import org.mockito.verification.*
4134
import kotlin.DeprecationLevel.WARNING
4235
import kotlin.reflect.KClass
4336

@@ -178,6 +171,8 @@ inline fun <reified T : Any> mock(
178171
KStubbing(this).stubbing(this)
179172
}!!
180173

174+
inline fun <T> stubbing(mock: T, stubbing: KStubbing<T>.(T) -> Unit) = KStubbing(mock).stubbing(mock)
175+
181176
inline fun <T : Any> T.stub(stubbing: KStubbing<T>.(T) -> Unit) = this.apply { KStubbing(this).stubbing(this) }
182177

183178
@Deprecated("Use mock() with optional arguments instead.", ReplaceWith("mock<T>(defaultAnswer = a)"), level = WARNING)

mockito-kotlin/src/test/kotlin/test/MockitoTest.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1052,4 +1052,18 @@ class MockitoTest : TestBase() {
10521052
verify(this).nullableString(same(null))
10531053
}
10541054
}
1055+
1056+
@Test
1057+
fun stubbingExistingMock() {
1058+
/* Given */
1059+
val mock = mock<Methods>()
1060+
1061+
/* When */
1062+
stubbing(mock) {
1063+
on { stringResult() } doReturn "result"
1064+
}
1065+
1066+
/* Then */
1067+
expect(mock.stringResult()).toBe("result")
1068+
}
10551069
}

0 commit comments

Comments
 (0)