如何在Grails for Domain Class中编写集成测试作为REST资源?

时间:2015-01-19 08:48:36

标签: rest grails resources integration-testing grails-domain-class

我正在使用域类作为Grails documentation

中提到的休息资源

因此,在使用此方法时,没有创建控制器或服务类。我试图找到一种方法来编写域的集成测试作为REST资源但无法找到它。请好好告诉我如何做到这一点,或者发布链接到一个告诉同样的地方。

关于这种方法,它是要求的确切方法,因此我无法改变使用REST服务的其他方式。

提前致谢。

1 个答案:

答案 0 :(得分:2)

您应该考虑使用Spock作为您的测试框架:
https://spock-framework.readthedocs.org/en/latest/

如何将其用于REST:

class ExampleWebAppSpecification extends Specification {
    def "Should return 200 & a message with the input appended"() {

        setup:
             def primerEndpoint = new RESTClient( 'http://localhost:8080/' )
        when:
             def resp = primerEndpoint.get([ path: 'exampleendpoint', query : [ input : 'Get a hair cut' ]])
        then:
             with(resp) {
                 status == 200
                 contentType == "application/json"
             }
             with(resp.data) {
                 payload == "Something really important: Get a hair cut"
             }
    }
}

编辑 - 在buildConfig.groovy中:

compile("org.codehaus.groovy:groovy-all:2.2.0")
compile("com.fasterxml.jackson.core:jackson-databind")

testCompile("org.spockframework:spock-core:0.7-groovy-2.0")
testCompile("org.codehaus.groovy.modules.http-builder:http-builder:0.7+")
testCompile("net.sf.json-lib:json-lib:2.4+")