以下是我的beforeInterceptor
def beforeInterceptor = {
log.debug "============${actionName}=========="
if (!(actionName in ['search'])) {
redirect controller: 'error', action: 'denied'
return false
}
}
我不知道如何编写
beforeInterceptor
的测试。我已经用谷歌搜索了,但是没有运气。我有tried
自己编写其测试用例,但无法在beforeInterceptor中获得actionName
。when:
controller.beforeInterceptor()
要么
when:
controller.beforeInterceptor.call()
controller.history(ticket)
每次我在
actionName
中获取null时。有人知道吗:如何编写beforeInterceptor (
integration
或unit
)的测试用例? 最佳答案
我为此创建了单元测试,我们可以在其中设置请求中的 Action 名称。我直接调用beforeInterceptor就像:
@TestFor(PersonController)
@Mock([Person])
class PersonControllerSpec extends Specification {
def setup() {
}
def cleanup() {
}
void "test beforeInterceptor"() {
when:
webRequest.actionName = "index"
controller.beforeInterceptor()
then:
controller.response.redirectedUrl == '/error/denied'
when:
controller.response.reset()
webRequest.actionName = "search"
controller.beforeInterceptor()
then:
controller.response.redirectedUrl != '/error/denied'
}
}