Ich möchte wissen, warum ich eine Ausnahme behandeln muss, wenn ich mich über eine void-Methode lustig mache, die eine Ausnahme auslöst.
Zum Beispiel
%Vor%Wenn ich das jetzt mache,
%Vor%führt zu Kompilierungsfehler, der
sagt"Fehler: nicht gemeldete Ausnahme SomeException; muss abgefangen oder als geworfen deklariert werden"
Ich frage mich, warum ich die Ausnahme für die Methode behandeln muss, die selbst verspottet wird.
Wenn Sie ein Objekt mit Mockito in Java mokieren. Das Framework ändert nichts an der Sprachspezifikation. Und in Java ist die throws
-Klausel bei der Kompilierung definiert. Sie können die deklarierten Ausnahmen zur Laufzeit nicht ändern. Wenn Sie in Ihrem Fall die Methode MyObject.call()
aufrufen, müssen Sie die SomeException
wie in jedem normalen Java-Code behandeln.
Da Sie im Komponententest nicht mit Dingen umgehen möchten, die Sie nicht testen. In Ihrem Fall würde ich einfach throws SomeException
in der Testmethode neu deklarieren.