Skip to content

Commit a0f7875

Browse files
authored
Merge pull request #278 from trav/trav/inline-whenever
Inline `whenever` to let Mockito's UnfinishedStubbing messages work
2 parents 87059d8 + 081d2cb commit a0f7875

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ import kotlin.reflect.KClass
3737
*
3838
* Alias for [Mockito.when].
3939
*/
40-
fun <T> whenever(methodCall: T): OngoingStubbing<T> {
40+
@Suppress("NOTHING_TO_INLINE")
41+
inline fun <T> whenever(methodCall: T): OngoingStubbing<T> {
4142
return Mockito.`when`(methodCall)!!
4243
}
4344

tests/src/test/kotlin/test/OngoingStubbingTest.kt

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import com.nhaarman.mockitokotlin2.*
77
import org.junit.Assume.assumeFalse
88
import org.junit.Test
99
import org.mockito.Mockito
10+
import org.mockito.exceptions.misusing.UnfinishedStubbingException
1011
import org.mockito.stubbing.Answer
1112

1213
class OngoingStubbingTest : TestBase() {
@@ -319,4 +320,20 @@ class OngoingStubbingTest : TestBase() {
319320
/* Then */
320321
expect(mock.stringResult()).toBe("result")
321322
}
322-
}
323+
324+
@Test
325+
fun testMockitoStackOnUnfinishedStubbing() {
326+
/* Given */
327+
val mock = mock<Open>()
328+
whenever(mock.stringResult())
329+
330+
/* When */
331+
try {
332+
mock.stringResult()
333+
} catch(e: UnfinishedStubbingException) {
334+
/* Then */
335+
expect(e.message).toContain("Unfinished stubbing detected here:")
336+
expect(e.message).toContain("-> at test.OngoingStubbingTest.testMockitoStackOnUnfinishedStubbing")
337+
}
338+
}
339+
}

0 commit comments

Comments
 (0)