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

时间:2014-06-16 13:37:53

标签: grails integration-testing

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

控制器代码部分:

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"
    }
}

2 个答案:

答案 0 :(得分:0)

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

使用像...这样的东西。

grails test-app integration: NameOfTest

不像......

grails test-app integration: NameOfTest.groovy

我希望有所帮助。

答案 1 :(得分:0)

在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对我不利。另见:the Grails Documentation