Ich verstehe nicht wirklich Interface Spott in Kotlin. Ich bin mir nicht sicher, ob dies Kotlin spezifisch ist oder auch auf Java zutrifft. Bisher habe ich es nur in Kotlin probiert.Mocking Interfaces mit Kotlin und Mockito
ich verspottet Klasse mit Schnittstellen haben:
val mockObj = mock(MyClass::class.java, withSettings().extraInterfaces(IMyInterface::class.java)
jetzt ergibt das folgende Problem in IntelliJ:
`when`(mockObj.someMethod()).thenReturn(0.1)
die someMethod()
wird rot (ich nehme an, dies auf das hängt Farbschema, aber Sie bekommen die Idee - ein Problem: ungelösten Referenz)
dieses Problem zu lösen, schließe ich einfach diese Zeile, bevor es:
val mockInterface = mockObj as IMyInterface
die mockInterface grau squigly sein wird unterstrichen, weil es ist nie benutzt. Ich benutze immer noch mockObj
für die when
aber dies der rot disappear
Ich bin nicht sicher macht, warum das funktioniert ... kann jemand die Theorie erklären?
der grauen unterstreichen, um loszuwerden, entferne ich dann val mockInterface =
so ist meine magische Linie mockObj as IMyInterface
sein absolut klar, der Grund, warum ich‘ Ich bin verwirrt, weil ich eine neue Variable erstellt habe, die ich nie benutzt habe - um das Problem zu lösen ... und noch verwirrender, habe ich dann die linke Hand der Aufgabe entfernt und sie funktioniert immer noch! – ycomp