gpt4 book ai didi

unit-testing - 在 Grails 中,如何在自动化测试中测试 @Secured 注释?

转载 作者:行者123 更新时间:2023-12-04 04:18:47 24 4
gpt4 key购买 nike

我有一个 Controller 方法,我像这样注释:

@Secured(['ROLE_ADMIN'])
def save() {
... // code ommitted
}

我正在尝试编写一个单元测试来验证只有管理员用户才能访问 URL:
def "Only the admin user should be able to invoke save"() {
given:
def user = createNonAdminUser() // let's pretend this method exists
controller.springSecurityService = Mock(SpringSecurityService)
controller.springSecurityService.currentUser >> user

when:
controller.save()

then:
view ==~ 'accessdenied'
}

但是,返回的 View 是 save View 而不是访问被拒绝 View 。看起来它绕过了 @Secured完全注释。有没有办法测试 @Secured来自单元测试或集成测试的注释?

最佳答案

尝试这个:

SpringSecurityUtils.doWithAuth('superuser') {
controller.save()
}

http://greybeardedgeek.net/2011/05/13/testing-grails-controllers-with-spock/

关于unit-testing - 在 Grails 中,如何在自动化测试中测试 @Secured 注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16849224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com