2015-07-11 89 views
1

我正在尝试将我的应用程序从grails 2升级到grails 3.但是,在grails 2中工作的功能测试现在无法运行。在Grails 2中,我使用RestBuilder发送请求并获得响应。在Grails 3中,没有相应的RestBuilder版本。我如何发送我的文章并获得grails 3功能测试的请求?Grails 3功能测试

非常感谢。

我测试代码的grails 2:

void testRequestNewEnvironment() { 
    setup: 
    def rest = new RestBuilder(connectTimeout:1000, readTimeout:20000) 
    int timeout = 10 
    String environmentId = 0 
    String environmentStatus = "Not Ready" 

    when: 
    /** 
    * PostMethod. Send out a post and response status should be 200 and the body of response include env_id 
    */ 
    def resp = rest.post('http://localhost:8080/test-environment-manager/environment') { 
     contentType "multipart/form-data" 
     buildfile= new File('script.sh') 
     username = "apps" 
     keepEnvflag = "false" 
     env_flavor = "default" 
    } 

    then: 
    resp.getStatus() == 200 
    environmentId = resp.json.env_id 
    println "Environment ID: $environmentId" 
    println ("Environment Status"+resp.json.Status) 

回答

2

我使用RESTClient用于执行Grails的功能测试的HTTP请求。它是HTTPBuilder库中的一个类,所以它应该可以在每个Grails版本中工作(因为它依赖于Grails)。

一些示例用法示here。之前,你可以使用它,你需要添加这个库的依赖,加入以下内容build.gradle

compile 'org.codehaus.groovy.modules.http-builder:http-builder:0.7.1' 
+0

嗨,首先感谢您的回答。但是,当我在build.gradle中添加“compile”:rest:0.8“”或“compile”:rest-client-builder:2.0.0“”时。服务器始终无法启动。该错误信息是:错误初始化类路径:org.gradle.api.internal.artifacts.DefaultModuleVersionSelector – sspqingda

+0

@sspqingda尝试添加该代替'编译“org.codehaus.groovy.modules.http建设者:HTTP建设者:0.7.1” ' –

+0

谢谢。编译“org.grails.plugins:rest-client-builder:2.0.0”也可以。 – sspqingda

0

我说:

纂“:其他客户端建设者:2.1.1”

它工作正常。