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