我试图通过创建 FakeApplication 对象并调用路由来调用 Controller 中的操作方法。这会调用 Controller 中的操作方法。但 Controller 依赖于很少的其他对象。现在,由于我没有创建 Controller 对象,因此如何模拟这些依赖项?
Http.RequestBuilder request = Helpers.fakeRequest()
.method(GET)
.uri("/v1/test/someApple");
Result result = route(fakeApp, request);
assertNotEquals(NOT_FOUND, result.status());
最佳答案
Play 文档显示了实例化应用程序以进行测试的不同方法。要将所有成员注入(inject) Controller 中,您可以使用 GuiceApplicationBuilder。
@Inject Application application;
@Before
public void setup() {
GuiceApplicationBuilder builder = new GuiceApplicationLoader()
.builder(new Context(Environment.simple()));
Guice.createInjector(builder.applicationModule()).injectMembers(this);
Helpers.start(application);
}
了解更多信息:https://www.playframework.com/documentation/2.6.x/JavaFunctionalTest
关于java - 如何在玩框架java中测试来自假应用程序的路由时模拟 Controller 依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47130515/