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());
}
}
注:當我運行應用程序時,錯誤處理是按預期工作。