java - 如何在玩框架java中测试来自假应用程序的路由时模拟 Controller 依赖关系

标签 java playframework

我试图通过创建 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/

相关文章:

java - 请讨论我的 Java 代码以找到因素(是否正确?)

scala - Websocket 'hard' 断开连接不明显?

jquery - 向 Controller 发出 Ajax 请求

java - 给定一个数字流,例如 1,3,5,4,6,9,我被要求打印它们,例如 1,3-6,9

java - 为什么大于 SECONDS 的 Java.util.concurrent.TimeUnit 类型在 Android 中不可用?

java - 高效的方法: JSON File Write or File Append

java - 在 PlayFramework 中自定义 CRUD list.html

java - Java 9 是否包含内置的 JSON?

database - 使用 scala play specs2 针对测试 mysql 数据库的演变

java - Play Framework 2.2.x : Image upload in Java