Поскольку это единичный тест метода, а не данного перехватчика, вам не нужно беспокоиться об аутентификации и инфраструктуре ACL. Если вы хотите проверить, что AccessDeniedException
выбрасывается, когда пользователю не предоставляется доступ к объекту, модуль тестирует сам перехватчик. В вашем случае просто проверьте, что ваш метод выполняет/возвращает то, что ожидается сделать/вернуть.
Если аутентификация не предоставляется доступ к данному объекту, метод Spring Security ACL перехватчик бросает AccessDeniedException
, как указан выше, и он обрабатывается либо в AccessDeniedHandler
или в водосборном блоке методы вызывающей прямо или косвенно обеспеченный метод. Если это ваша ситуация, ответственность за компонент будет зависеть от вашего защищенного метода для правильной обработки исключения.
Единичный тест для такого компонента может создать компонент с макетом компонента с защищенным методом, введенным в него, и имитировать металирование AccessDeniedException
. Затем проверьте правильность обработки исключения.
Я использую JUnit 4, если во время модульного теста он не возвращает 'AccessDeniedException', но в реальном мире он делает, чего не хватает при настройке модульного теста? – huahsin68