2017-11-15 2 views
0

Bitte Ich bin ein wenig verwirrt, dieser Test fehlschlägt mit "java.lang.IllegalStateException: NotNull() darf nicht null sein":Kotlin + Mockito: immer einen Null

@Test 
fun when_resume_subscribe() { 
    // WHEN 
    presenter.onStart() 
    // THEN 
    verify<Model>(model).subscribe(notNull()) // <---- fails here 
} 

hier ist die Methode, im Test:

override fun onStart() { 
    model.subscribe(object : Observer<Bar> { 
     override fun onCompleted() { 
      view?.showProgress(false) 
     } 
//... more stuff... 

Bitte was passiert?

Antwort

1

Dies ist im Grunde die Aufnahme des Null-Objekts in das spezifische Klassenobjekt mit Generic. Der Code wie unten, wo wir jedes() überschreiben, um das Problem entsprechend zu behandeln.

private fun <T> any(): T { 
Mockito.any<T>() 
return uninitialized() 
    } 
private fun <T> uninitialized(): T = null as T 

Für weitere Details können Sie dieses Tutorial https://medium.com/@elye.project/befriending-kotlin-and-mockito-1c2e7b0ef791 überprüfen.

Verwandte Themen