Интеграционное тестирование Grails Spring Security Плагин? - PullRequest
4 голосов
/ 09 августа 2011

У меня есть это:

@Secured(['ROLE_USER', 'ROLE_HELPDESK', 'ROLE_ADMIN'])
class MyController {
    def edit = {
    }

    @Secured(['ROLE_ADMIN'])
    def uploadForUser = {
        params.userId = params.id
        forward(controller: 'someController', action: 'someAction', params: params)
    }
}

, и интеграционный тест, по-моему, должен провалиться:

public void test_uploadForUser_unauthenticated(){
    myController.params.id = "testUser"
    myController.uploadForUser()
}

И все же тесты пройдены.Есть ли способ протестировать контроллеры, аннотированные с помощью плагина безопасности Spring?

1 Ответ

9 голосов
/ 09 августа 2011

Эти аннотации анализируются с помощью SpringSecurityFilter, поэтому они не работают, если у вас нет фактического HTTP-запроса.

Таким образом, вам нужно либо перейти к проверке ролей с помощью условных выражений внутри действий, например, сделать это здесь , либо протестировать его с помощью WebDriver / Geb или какой-то более простой среды - очень хороший подход представлен в Сам плагин Grails Security .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...