Mein Code wie unten Mokito ANYOBJECT() mit, was sich auf die Lösung in https://stackoverflow.com/a/30308199/3286489Parameter als nicht-null angegeben ist null, wenn sie auf Kotlin Funktion
import org.mockito.Mock
import org.mockito.Mockito
import org.mockito.MockitoAnnotations
import org.mockito.Mockito.*
class SimpleClassTest {
private fun <T> anyObject(): T {
Mockito.anyObject<T>()
return uninitialized()
}
private fun <T> uninitialized(): T = null as T
lateinit var simpleObject: SimpleClass
@Mock lateinit var injectedObject: InjectedClass
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
}
@Test
fun testSimpleFunction() {
simpleObject = SimpleClass(injectedObject)
verify(injectedObject).settingDependentObject(anyObject())
}
}
ich noch die folgenden Fehler haben
java.lang.IllegalArgumentException: Parameter specified as non-null is null: method my.package.InjectedClass.settingDependentObject, parameter dependentObject
Habe ich etwas vermisst?
AKTUALISIERT Unten ist der Code getestet (einfachste Form und Arbeits)
class SimpleClass(val injectedClass: InjectedClass) {
fun simpleFunction() {
injectedClass.settingDependentObject(DependentClass(Response.Builder().build()))
}
}
open class DependentClass(response: Response) {
}
open class InjectedClass() {
lateinit var dependentObject: DependentClass
fun settingDependentObject(dependentObject: DependentClass) {
this.dependentObject = dependentObject
}
}
Meine injectObject-Klasse ist bereits eine offene Klasse. Das settingDependentObject erfordert ein Nicht-Null-Objekt, aber AnyObject() gibt null zurück. Deshalb dachte ich, die Lösung in http://stackoverflow.com/a/30308199/3286489 würde mir helfen, das Null-Problem zu überwinden. Aber es funktioniert immer noch nicht. – Elye
@Elye fügen Sie der Frage – miensol
bitte die Quelle 'InjectedClass' hinzu. Fügen Sie die zu testende Klasse zu dem obigen Update hinzu. Vielen Dank! – Elye