Wenn ich einen Test in einer verschachtelten Klasse in Kotlin wie folgt spezifiziere ...
import org.junit.jupiter.api.*
class ParentTest
{
@Nested
class NestedTest
{
@Test
fun NotFoundTest() {}
}
@Test
fun FoundTest() {}
}
... wird von JUnit beim Ausführen von Tests mit gradle nicht erkannt. Nur FoundTest
wird gefunden und ausgeführt.
Ich verwende JUnit 5.1 und Kotlin 1.2.30 und Gradle 4.6.
Das Definieren der verschachtelten Klasse als innere Klasse behebt dieses Problem.
class ParentTest
{
@Nested
inner class NestedTest
{
@Test
fun InnerTestFound() {}
}
@Test
fun FoundTest() {}
}
Wie Sam Brannen angibt , "ähnelt eine verschachtelte Klasse in Kotlin standardmäßig einer static
Klasse in Java", und in der JUnit-Dokumentation heißt es :
Nur nicht statische verschachtelte Klassen (dh innere Klassen) können als @ verschachtelte Testklassen dienen.
Das Markieren der Klasse wie inner
in Kotlin wird zu einer nicht statischen Java-Klasse kompiliert.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen