Grails集成测试-重定向操作返回null



这是我遇到困难的一个小集成Junit。我已经用几种不同的方式重写了它,目前的方式直接来自Grails手册——但它仍然返回null。我没看到错误;我以为可能是拼写错误,但我都检查过了。我试过redirectUrlredirectedUrl -仍然返回null

控制器代码片段:

@Transactional(readOnly = true)     
def saveReportError() {
    redirect(action:'reportError')  
}
测试:

@Test
void "test save error report"() {
controller.saveReportError()
    assertEquals '/reportSiteErrors/reportError', controller.response.redirectUrl
}

我建议像这样将测试作为单元测试来实现。

import grails.test.mixin.TestFor
import spock.lang.Specification
@TestFor(SimpleController)
class SimpleControllerSpec extends Specification {
    void 'test index'() {
        when:
        controller.index()
        then:
        response.redirectedUrl == '/simple/hello'
    }
}

使用单元测试具有速度的优势。

最新更新