Ich habe eine einfache TestklasseKotlin: Manuelles Einfügen einer generischen Funktion führt zu einem anderen Ergebnis?
class SimpleClassTest {
private fun <T> anyObject(): T {
return Mockito.anyObject<T>()
}
lateinit var simpleObject: SimpleClass
@Mock lateinit var injectedObject: InjectedClass
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
}
@Test
fun testSimpleFunction() {
simpleObject = SimpleClass(injectedObject)
simpleObject.simpleFunction()
verify(injectedObject).settingDependentObject(anyObject())
}
}
Es fein und übergeben funktioniert.
Da die private generic anyObject()
Funktion nur einmal verwendet wird, so dass ich entscheiden, es zu inlining (manuell), dh die Notwendigkeit dieser Funktion entfernen, wobei ich von
verify(injectedObject).settingDependentObject(anyObject())
zu
ändernverify(injectedObject).settingDependentObject(Mockito.anyObject<DependentClass>())
Aber dieser Fehler jetzt als java.lang.IllegalStateException: Mockito.anyObject<DependentClass>() must not be null
Alles, was ich falsch inlining die Funktionsaufruf zu einem direkten stat ement?
Gibt es etwas anders zwischen
private fun <T> anyObject(): T {
return Mockito.anyObject<T>()
}
und die unter Verwendung von?
Mockito.anyObject<DependentClass>()
Welche Version von Kotlin und sein Plugin verwenden Sie? – nhaarman
Ich benutze 1.0.1-2. Und wenn ich zu 1.0.2 wechsel, funktioniert es immer noch. – Elye