在Java Play 2.4中测试具有模拟依赖项的控制器
我正在将Java play应用程序从2.37迁移到>;2.4.1. 在控制器单元测试中,我在每次测试之前设置了控制器及其相关的模拟依赖项
在Play 2.4中,getControllerInstance方法似乎已从GlobalSettings中删除,因此现在我无法覆盖它以返回控制器实例
@RunWith(MockitoJUnitRunner.class)
public class PublicRoomsControllerTest extends WithApplication {
@Mock
private MyService myService;
private MyController myController;
@Before
public void setUp() {
myController = new MyController(myService);
GlobalSettings global = new GlobalSettings() {
public <T> T getControllerInstance(Class<T> clazz) {
return (T) controller;
}
};
start(fakeApplication(global));
}
@Test
public void myTest() {
Result result = route(new RequestBuilder().method(POST).uri("/test"));
assertEquals(OK, result.status());
}
}
我知道我可以通过测试直接在控制器实例上调用该方法,例如:
Result result = myController.someMethod();
assertEquals(OK, result.status());
在someMethod()依赖于请求中的表单数据之前,这种方法似乎可以正常工作
Map<String, String> data = Form.form().bindFromRequest().data();
测试是否有办法路由请求(可能包括表单数据)以使用我的控制器实例
(我正在使用Guice、Mockito和JUnit)
共 (0) 个答案