From a4db2e1fd01f2b79d970900efeae7e588548ca6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jordi=20Garc=C3=ADa=20L?= Date: Wed, 15 Jan 2020 22:54:35 +0100 Subject: [PATCH 1/2] Return an empty String instead of null when creating a mock I believe `String` values in mocks should return `""` by default. It is a historically 'special' type which has always had some special 'primitive-like' privileges. I assume people expect it to return a nice value as well! --- .../com/nhaarman/mockitokotlin2/internal/CreateInstance.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/mockito-kotlin/src/main/kotlin/com/nhaarman/mockitokotlin2/internal/CreateInstance.kt b/mockito-kotlin/src/main/kotlin/com/nhaarman/mockitokotlin2/internal/CreateInstance.kt index 4d9b5f5b..03acadba 100644 --- a/mockito-kotlin/src/main/kotlin/com/nhaarman/mockitokotlin2/internal/CreateInstance.kt +++ b/mockito-kotlin/src/main/kotlin/com/nhaarman/mockitokotlin2/internal/CreateInstance.kt @@ -38,6 +38,7 @@ inline fun createInstance(): T { Long::class -> 0L as T Float::class -> 0f as T Double::class -> 0.0 as T + String::class -> "" as T else -> createInstance(T::class) } } From 43989ba85b40d1d6516c25814e9f5da24ce03fa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jordi=20Garc=C3=ADa=20L?= Date: Wed, 15 Jan 2020 23:06:56 +0100 Subject: [PATCH 2/2] Adapt tests not to use String to check null handling --- .../src/test/kotlin/test/createinstance/NullCasterTest.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/src/test/kotlin/test/createinstance/NullCasterTest.kt b/tests/src/test/kotlin/test/createinstance/NullCasterTest.kt index b214fcc0..6352805f 100644 --- a/tests/src/test/kotlin/test/createinstance/NullCasterTest.kt +++ b/tests/src/test/kotlin/test/createinstance/NullCasterTest.kt @@ -11,7 +11,7 @@ class NullCasterTest : TestBase() { @Test fun createInstance() { /* When */ - val result = createInstance(String::class) + val result = createInstance(Any::class) /* Then */ expect(result).toBeNull() @@ -20,12 +20,12 @@ class NullCasterTest : TestBase() { @Test fun kotlinAcceptsNullValue() { /* Given */ - val s: String = createInstance(String::class) + val mockObject: Any = createInstance(Any::class) /* When */ - acceptNonNullableString(s) + acceptNonNullableObject(mockObject) } - private fun acceptNonNullableString(@Suppress("UNUSED_PARAMETER") s: String) { + private fun acceptNonNullableObject(@Suppress("UNUSED_PARAMETER") mockObject: Any) { } }