圣杯弹簧安全登录控制器测试



我的登录控制器中有以下代码,我必须测试用户是否已登录。我将如何编写测试用例?

def index() {
    if (springSecurityService.isLoggedIn()) {
        redirect uri: '/'
    }
    else {
        redirect action: 'auth', params: params
    }
}

像这样:

import grails.plugin.springsecurity.SpringSecurityService
import grails.test.mixin.TestFor
import spock.lang.Specification
@TestFor(YourController)
class YourControllerSpec extends Specification {
    def springSecurityService = Mock( SpringSecurityService )
    void setup() {
        controller.springSecurityService = springSecurityService
    }
    void "test index"() {
        when:
            controller.index()
        then:
            1 * springSecurityService.isLoggedIn() >> true
            response.redirectedUrl == '/'
        when:
            controller.response.reset()
            controller.index()
        then:
            1 * springSecurityService.isLoggedIn() >> false
            response.redirectedUrl == '/auth'
    }
}

最新更新