Ich versuche eines meiner verspotteten Objekte eine geprüfte Exception werfen zu lassen, wenn eine bestimmte Methode aufgerufen wird. Ich versuche Folgendes.throw checked Ausnahmen von Mocks mit Mockito
@Test(expectedExceptions = SomeException.class)
public void throwCheckedException() {
List<String> list = mock(List.class);
when(list.get(0)).thenThrow(new SomeException());
String test = list.get(0);
}
public class SomeException extends Exception {
}
Das erzeugt jedoch den folgenden Fehler.
org.testng.TestException:
Expected exception com.testing.MockitoCheckedExceptions$SomeException but got org.mockito.exceptions.base.MockitoException:
Checked exception is invalid for this method!
Invalid: com.testing.MockitoCheckedExceptions$SomeException
Mit Blick auf den Mockito documentation, sie RuntimeException
nur verwenden, ist es nicht möglich, mit Mockito geprüft Ausnahmen von einem Mock-Objekt zu werfen?
Während mein realer Code nicht wirklich List verwendete, gilt Ihre Antwort auch für diesen Methodenaufruf. Ich habe mich über die falsche Methode lustig gemacht. Vielen Dank. –
extra: Mocktio wird sich nicht beschweren, wenn du eine Methode ohne irgendwelche Throwables machst, aber du bekommst auch diese Ausnahme – dwana
Für Kotliners: Kotlin hat keine Ausnahmen überprüft, also kannst du normalerweise (in der Funktionssignatur) diese Funktion nicht deklarieren löst eine Ausnahme aus. Sie können die Funktion jedoch mit der Anmerkung "Würfe" annotieren, damit der Compiler den gleichen Bytecode generiert, der die Würfe im entsprechenden Java-Code deklariert. Weitere Informationen finden Sie [hier] (https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-throws/index.html). – Metallica