gpt4 book ai didi

java - 使用fakeRequest Play 2.5.x junit测试错误处理

转载 作者:行者123 更新时间:2023-12-03 07:40:49 24 4
gpt4 key购买 nike

我的程序使用全局错误处理。当我使用fakeRequest()进行测试时,它抛出异常,而不是触发我的错误处理程序。
我是否缺少某些配置?或如何测试全局错误处理程序。

下面是我当前的代码:

Controller :

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());
}
}

注意:当我运行应用程序时,错误处理正在按预期方式工作。

最佳答案

单元测试流程中缺少错误处理程序是设计使然。就是那样。

使用简单的路由器,您可以解决此问题。

此链接可能对这两点都有帮助:https://github.com/playframework/playframework/issues/2484

在此不重复链接的内容。

关于java - 使用fakeRequest Play 2.5.x junit测试错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40189844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com