如何集成测试(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