1
我想要一个测试,通过控制器中可用的所有方法并检索与这些方法关联的角色。我知道它应该是一个功能测试(与单元测试相对),但我仍然不知道如何请求与方法相关的角色列表。 比方说,我有这样的控制器:Grails Spring Security将角色分配给一个方法
@Secured("hasAnyRole('ROLE_1')"
class MyController {
def methodA() {}
@Secured("hasAnyRole('ROLE_2')"
def methodB() {}
}
在我的测试,我想有这样的事情:
assertEquals(['ROLE_1'],getRoles(MyController.class, "methodA"))
assertEquals(['ROLE_1', 'ROLE_2'],getRoles(MyController.class, "methodB"))
有什么建议? 谢谢。
春季安全不集成测试活动的,因为它与一个过滤器链来实现,而这些要求都只是'MockHttpServletRequest's,不是真正的请求在一个容器中运行。如果要测试控制器是否正确保护,则必须使用功能测试。 – 2013-04-05 20:02:03
感谢您澄清@BurtBeckwith! – 2013-04-05 20:07:43
我知道我需要功能测试,但是我仍然不知道如何才能获取函数的角色列表,而不是先尝试对用户进行身份验证,然后尝试访问函数。 – sjcomp 2013-04-08 19:29:18