集成测试-如何测试没有输入和渲染的方法



如何集成测试(Grails)一个没有输入和呈现视图的控制器?这是我的控制器代码和测试;测试看起来是正确的,但是会抛出一个"java.lang. net"错误。异常:没有找到匹配grails测试目标模式过滤器的测试"错误。非常感谢你的帮助。对

控制器代码段:

class ReportSiteErrorsController {
    static allowedMethods = [reportError: 'GET', saveReportError: 'POST']
    def mailService
    @Transactional(readOnly = true)
    def reportError() {
        render(view:'reportError', model:[]) 
    }
}

集成测试:

@TestFor(ReportSiteErrorsController)
class ReportSiteErrorsControllerTests extends DbunitGroovyTestCase {
    @Test
    void "test report error"() {
        controller.reportError()
        assert view == "reportError"
    }
}

在命令行中关闭扩展名。您应该指定测试的名称,而不是定义测试的文件的名称。

使用诸如…

grails test-app integration: NameOfTest

不是…

grails test-app integration: NameOfTest.groovy

在Grails 2.4中,测试render "hello"的默认语法是:

import grails.test.mixin.TestFor
import spock.lang.Specification
/**
 * See the API for {@link grails.test.mixin.web.ControllerUnitTestMixin} for usage     instructions
 */
@TestFor(SimpleController)
class SimpleControllerSpec extends Specification {
def setup() {
}
def cleanup() {
}
void "test something"() {
    controller.index()
    expect:
     response.text == "hello"       
}
}

assert不适合我。参见:Grails Documentation

相关内容

  • 没有找到相关文章