Mein Programm verwendet globale Fehlerbehandlung. Wenn ich fakeRequest() zum Testen verwende, löst es eine Exception aus, statt meinen Fehlerhandler auszulösen. Fehle ich etwas Konfiguration? Oder wie kann ich meinen globalen Error-Handler testen?Play 2.5.x Junit Test Fehlerbehandlung mit FakeRequest
Im Folgenden finden Sie meine aktuellen Code:
Controller:
public class MyController {
public Result MyService() {
if (true) throw new RuntimeException("exception");
}
}
Fehlerbehandler:
@Singleton
public class MyErrorHandler extends DefaultHttpErrorHandler {
@Inject
public MyErrorHandler (Configuration configuration, Environment environment, OptionalSourceMapper sourceMapper, Provider<Router> routes) {
super(configuration, environment, sourceMapper, routes);
}
@Override
public CompletionStage<Result> onServerError(Http.RequestHeader request, Throwable exception) {
return CompletableFuture.completedFuture(ok(exception.getMessage()));
}
}
Test:
public class MyTest {
@Test
public void testMethod() {
Result result = route(fakeRequest("GET", "/MyService"));
assertEquals(OK, result.status());
}
}
Hinweis: Wenn ich Anwendung ausführen, die Fehler Handhabung ist Arbeiten wie erwartet.