这是我遇到困难的一个小集成Junit
。我已经用几种不同的方式重写了它,目前的方式直接来自Grails手册——但它仍然返回null
。我没看到错误;我以为可能是拼写错误,但我都检查过了。我试过redirectUrl
和redirectedUrl
-仍然返回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'
}
}
使用单元测试具有速度的优势。