如何集成测试(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"
}
}
答案 0 :(得分:0)
在命令行中关闭扩展程序。您应该指定测试的名称,而不是指定它的文件的名称。
使用像...这样的东西。
grails test-app integration: NameOfTest
不像......
grails test-app integration: NameOfTest.groovy
我希望有所帮助。
答案 1 :(得分:0)
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