1
私のプログラムでは、グローバルなエラー処理が使用されます。テストにfakeRequest()を使用すると、エラーハンドラをトリガする代わりに例外がスローされます。 設定が欠落していますか?または、グローバルエラーハンドラをどのようにテストできますか?以下はfakeRequestを使用して2.5.x junitテストのエラー処理を処理する
私の現在のコードです:
コントローラー:
public class MyController {
public Result MyService() {
if (true) throw new RuntimeException("exception");
}
}
のErrorHandler:
@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()));
}
}
テスト:
public class MyTest {
@Test
public void testMethod() {
Result result = route(fakeRequest("GET", "/MyService"));
assertEquals(OK, result.status());
}
}
注:私は、アプリケーションを実行すると、エラー取り扱いは期待どおりに動作します。