Warum hat TestNG die Möglichkeit zu prüfen, ob eine von mehreren Ausnahmen ausgelöst wird? Soweit ich weiß, unterstützt JUnit nur eine erwartete Ausnahme. Betrachten Sie die folgenden TestNG Dummy-Beispiele, in denen beiden Tests bestanden werden:Warum lässt TestNG mehrere erwartete Ausnahmen zu?
@Test(expectedExceptions = { NullPointerException.class, IllegalArgumentException.class })
public void throwsNullPointer() {
throw new NullPointerException();
}
@Test(expectedExceptions = { NullPointerException.class, IllegalArgumentException.class })
public void throwsIllegalArgument() {
throw new IllegalArgumentException();
}
Mein erster Eindruck ist, dass es möglich sein soll, aus dem im Test befindlichen Code abzuleiten genau die Ausnahme, die erwartet wird. Es muss jedoch eine Designentscheidung von den Leuten geben, die hinter TestNG stehen.
Ist es vielleicht Unterstützung für das Testen von Code mit zufälligen Features, die nicht abgespottet werden können? Hat jemand eine Idee und vorzugsweise ein realistisches Szenario?
Nun, _derive aus dem code_ war vielleicht schlecht von mir formuliert. Natürlich sollten Tests codiert werden, um den Vertrag zu testen. Ich habe es wahrscheinlich so ausgedrückt, da ich meistens Komponententests für meinen eigenen Code schreibe. Alle fairen und gültigen Punkte, +1 und höchstwahrscheinlich werde ich Ihre Antwort in Kürze annehmen. – Magnilex