Testen erwarteter Ausnahmen in Kotlin
In Java, kann der Programmierer angeben, erwartete Ausnahmen für JUnit Testfälle so:
@Test(expected = ArithmeticException.class)
public void omg()
{
int blackHole = 1 / 0;
}
Wie würde ich das in Kotlin? Ich habe versucht, zwei syntax-Varianten, aber keiner von Ihnen arbeitete:
import org.junit.Test as test
//...
test(expected = ArithmeticException) fun omg()
Please specify constructor invocation;
classifier 'ArithmeticException' does not have a companion object
test(expected = ArithmeticException.class) fun omg()
name expected ^
^ expected ')'
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die syntax ist einfach:
Kotlin hat seinen eigenen test-helper-Paket , die helfen können, das zu tun diese Art der unittest. Hinzufügen
Und Ihr test kann sehr ausdrucksstark sein, die durch die Nutzung
assertFailWith
:Stellen Sie sicher, dass
kotlin-test.jar
in Ihrer Klasse Weg.kotlin.test
wurde durch etwas anderes ersetzt?Können Sie
@Test(expected = ArithmeticException::class)
oder noch besser eines Kotlin-Bibliothek Methoden wiefailsWith()
.Können Sie machen es noch kürzer durch Verwendung vergegenständlicht Generika und eine helper-Methode wie diese:
Und Beispiel für die Verwendung der annotation:
javaClass<T>()
ist veraltet jetzt. VerwendenMyException::class.java
statt.Können Sie KotlinTest für diese.
In Ihren test, können Sie wickeln beliebigen code mit einem shouldThrow block:
Können Sie auch Generika mit kotlin.test-Paket:
JUnit 5.1 hat kotlin-Unterstützung gebaut.