在基于 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()”,在测试时应该使用模拟)
如何让我的控制器拿起模拟?