在拦截器的before()中,我正在基于actionName进行特定的操作,但是从测试运行时,actionName为null:

测试:

void "test"() {
    when:
        withRequest(controller: 'test1', action: 'test2')

    then:
        interceptor.doesMatch()
        interceptor.before()
}

如何在测试中填充actionName

Grails 3.1.6

最佳答案

void "test"() {
    when:
        withRequest(controller: 'test1', action: 'test2')
        request.setAttribute(GrailsApplicationAttributes.ACTION_NAME_ATTRIBUTE, 'test2')

    then:
        interceptor.doesMatch()
        interceptor.before()
}

这对我有用,尽管我希望使用更自动的方式,但我希望withRequest方法可以做到这一点。

10-06 11:00