我在 Play 中的反向路由器有问题!2.2.0
我想从我的控制器测试一个方法,如文档中所述:
@Test
public void testIsSessionSpeaker_true() throws Exception {
// the action
Result result = callAction( controllers.routes.ref.UsersController.isSessionSpeaker(workshop.workshopSession.get(0)),
fakeRequest().withSession("uuid", "123456"));
// test after action
}
当我运行测试时,出现以下错误:
error: cannot find symbol
Result result = callAction(controllers.routes.ref.UsersController.isSessionSpeaker(workshop.workshopSession.get(0)),
^
symbol: method isSessionSpeaker(WorkshopSession)
location: variable UsersController of type ReverseUsersController
1 error
isSessionSpeaker
我想测试的方法不能通过路由访问,所以我不能使用route(fakeRequest(PUT, "something"))
并且该方法需要一个会话,所以我不能像“调用它”一样UsersController.isSessionSpeaker(...)
或者我得到一个There is no HTTP Context available from here.
问题不在于我的智能,因为我使用激活器编译和执行测试。
在阅读了一半的网页后,我尝试了一些其他方式将 ref 写为:
controllers.WorkshopManager.routes.ref.UsersController.isSessionSpeaker(...)
controllers.WorkshopManager.routes.UsersController.isSessionSpeaker(...)
controllers.routes.UsersController.isSessionSpeaker(...)
routes.ref.UsersController.isSessionSpeaker(...)
我被困住了!!如果您想查看所有代码,我将其推送到我的 git repo中
提前感谢您的帮助!