如何在playframework java中测试来自fakeApplication的路由时模拟控制器依赖项

时间:2017-11-06 05:49:33

标签: java playframework

我试图通过创建FakeApplication对象并调用路由来调用控制器中的action方法。这将调用控制器中的action方法。但是控制器依赖于很少的其他对象。既然我没有创建控制器对象,我该如何模拟这些依赖项呢?

     Http.RequestBuilder request = Helpers.fakeRequest()
            .method(GET)
            .uri("/v1/test/someApple");

    Result result = route(fakeApp, request);
    assertNotEquals(NOT_FOUND, result.status());

1 个答案:

答案 0 :(得分:1)

Play文档显示了实例化Application以进行测试的不同方法。要将所有成员注入控制器,可以使用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