在基于Play的应用中!框架(2.0,Java)我想在测试控制器时模拟第三方API。我之所以选择Mockito,是因为我找不到Play中的任何内置模拟功能!

我有这样的事情:

@Test
public void someTest() {
  ThirdParty thirdParty = mock(ThirdParty.class);
  when(thirdParty.someUnwantedMethod()).thenReturn("foo");

  running(fakeApplication(), new Runnable() {
    public void run() {
      Result result = callAction(controllers.routes.ref.MyController.doImportantStuff());
      verify(thirdParty.someUnwantedMethod()); // Verify that method in mock/API is called
      assertThat(contentAsString(result)).contains("foo");
    }
  });
}


(控制器依次在ThirdParty类的实例上调用“ someUnwantedMethod()”,该类在测试时应使用模拟代替)

我如何让我的控制器接听模拟游戏?

最佳答案

在MyController中引入静态setThirdParty方法
在您的测试中,在“ callAction”之前,调用MyController.setThirdParty(thirdParty)


没有关于此的特定游戏

09-05 19:56