@@ -48,9 +48,10 @@ import kotlin.reflect.KClass
48
48
* @param stubOnly A stub-only mock does not record method invocations, thus saving memory but disallowing verification of invocations.
49
49
* @param useConstructor Mockito attempts to use constructor when creating instance of the mock.
50
50
* @param outerInstance Makes it possible to mock non-static inner classes in conjunction with [useConstructor].
51
+ * @param lenient Lenient mocks bypass "strict stubbing" validation.
51
52
*/
52
53
inline fun <reified T : Any > mock (
53
- extraInterfaces : Array <KClass <out Any >>? = null,
54
+ extraInterfaces : Array <out KClass <out Any >>? = null,
54
55
name : String? = null,
55
56
spiedInstance : Any? = null,
56
57
defaultAnswer : Answer <Any >? = null,
@@ -60,7 +61,8 @@ inline fun <reified T : Any> mock(
60
61
invocationListeners : Array <InvocationListener >? = null,
61
62
stubOnly : Boolean = false,
62
63
@Incubating useConstructor : UseConstructor ? = null,
63
- @Incubating outerInstance : Any? = null
64
+ @Incubating outerInstance : Any? = null,
65
+ @Incubating lenient : Boolean = false
64
66
): T {
65
67
return Mockito .mock(
66
68
T ::class .java,
@@ -75,7 +77,8 @@ inline fun <reified T : Any> mock(
75
77
invocationListeners = invocationListeners,
76
78
stubOnly = stubOnly,
77
79
useConstructor = useConstructor,
78
- outerInstance = outerInstance
80
+ outerInstance = outerInstance,
81
+ lenient = lenient
79
82
)
80
83
)!!
81
84
}
@@ -94,9 +97,10 @@ inline fun <reified T : Any> mock(
94
97
* @param stubOnly A stub-only mock does not record method invocations, thus saving memory but disallowing verification of invocations.
95
98
* @param useConstructor Mockito attempts to use constructor when creating instance of the mock.
96
99
* @param outerInstance Makes it possible to mock non-static inner classes in conjunction with [useConstructor].
100
+ * @param lenient Lenient mocks bypass "strict stubbing" validation.
97
101
*/
98
102
inline fun <reified T : Any > mock (
99
- extraInterfaces : Array <KClass <out Any >>? = null,
103
+ extraInterfaces : Array <out KClass <out Any >>? = null,
100
104
name : String? = null,
101
105
spiedInstance : Any? = null,
102
106
defaultAnswer : Answer <Any >? = null,
@@ -107,6 +111,7 @@ inline fun <reified T : Any> mock(
107
111
stubOnly : Boolean = false,
108
112
@Incubating useConstructor : UseConstructor ? = null,
109
113
@Incubating outerInstance : Any? = null,
114
+ @Incubating lenient : Boolean = false,
110
115
stubbing : KStubbing <T >.(T ) -> Unit
111
116
): T {
112
117
return Mockito .mock(
@@ -122,7 +127,8 @@ inline fun <reified T : Any> mock(
122
127
invocationListeners = invocationListeners,
123
128
stubOnly = stubOnly,
124
129
useConstructor = useConstructor,
125
- outerInstance = outerInstance
130
+ outerInstance = outerInstance,
131
+ lenient = lenient
126
132
)
127
133
).apply { KStubbing (this ).stubbing(this ) }!!
128
134
}
@@ -142,9 +148,10 @@ inline fun <reified T : Any> mock(
142
148
* @param stubOnly A stub-only mock does not record method invocations, thus saving memory but disallowing verification of invocations.
143
149
* @param useConstructor Mockito attempts to use constructor when creating instance of the mock.
144
150
* @param outerInstance Makes it possible to mock non-static inner classes in conjunction with [useConstructor].
151
+ * @param lenient Lenient mocks bypass "strict stubbing" validation.
145
152
*/
146
153
fun withSettings (
147
- extraInterfaces : Array <KClass <out Any >>? = null,
154
+ extraInterfaces : Array <out KClass <out Any >>? = null,
148
155
name : String? = null,
149
156
spiedInstance : Any? = null,
150
157
defaultAnswer : Answer <Any >? = null,
@@ -154,7 +161,8 @@ fun withSettings(
154
161
invocationListeners : Array <InvocationListener >? = null,
155
162
stubOnly : Boolean = false,
156
163
@Incubating useConstructor : UseConstructor ? = null,
157
- @Incubating outerInstance : Any? = null
164
+ @Incubating outerInstance : Any? = null,
165
+ @Incubating lenient : Boolean = false
158
166
): MockSettings = Mockito .withSettings().apply {
159
167
extraInterfaces?.let { extraInterfaces(* it.map { it.java }.toTypedArray()) }
160
168
name?.let { name(it) }
@@ -167,6 +175,7 @@ fun withSettings(
167
175
if (stubOnly) stubOnly()
168
176
useConstructor?.let { useConstructor(* it.args) }
169
177
outerInstance?.let { outerInstance(it) }
178
+ if (lenient) lenient()
170
179
}
171
180
172
181
class UseConstructor private constructor(val args : Array <Any >) {
0 commit comments