gpt4 book ai didi

Grails 功能测试插件和 RESTful 测试

转载 作者:行者123 更新时间:2023-12-02 14:58:29 25 4
gpt4 key购买 nike

我刚刚抓到了最新版本的functional testing plugin至少从文档来看,它的重点发生了一些变化。这不是一件坏事。 HtmlUnit 集成很好。但是现在,文档中没有任何关于 Web 服务的 RESTful 测试的内容。然而,我以前用 functionaltestplugin.FunctionalTestCase 做的事情仍然有效,这很棒。

例如:

void testCertifyEmployerCertifierNotFound() {

post('/employerCertification/certifyEmployer') {
headers['Content-Type'] = 'application/json'
body {
"""
{
'employerName': 'ACME',
'certifierExteralId': '1234556',
'certifyingUserId': '123445'
}
"""
}
}
assertStatus 200
assertContentType "application/json"
def model = this.response.contentAsString
def map = JSON.parse(model)
assertFalse(map.success)
assertNotNull(map.errorCode)
assertTrue(map.errorCode == EmployerCertificationService.ERROR_RESPONSE.CERTIFIER_NOT_FOUND.toString())
}

这个插件仍然是用于功能 Web 服务测试的“事实上的”插件吗?我上面的方法仍然有效吗?

最佳答案

如果您的目标是测试 REST 请求/响应,我建议您使用 rest client builder plugin .您不需要复杂的浏览器模拟插件。安装后只需两步即可使用,非常简单:

在 scripts/_Events.groovy 添加事件以管理功能测试:这是一个系统 grail 文件,用于在运行时 Hook 一些事件。只需复制并粘贴此代码段:

eventAllTestsStart = {
if (getBinding().variables.containsKey("functionalTests")) {
functionalTests << "functional"
}
}

现在您可以在 test/functional 文件夹中创建功能测试, 记住以 Spec 结束文件名,如果你忘记了这个,grails 将找不到任何测试 .
这是一个例子:
import grails.plugins.rest.client.RestBuilder
import spock.lang.Specification

class AuthenticationSpec extends Specification {

String baseUrl = "http://localhost:8080/grouply-backend"

void "test login wrong credentials"() {

given:
RestBuilder restBuilder = new RestBuilder()

when: "sending wrong credential"
def response = restBuilder.post("${baseUrl}/auth/login") {
json {
username = 'foo'
password = 'bar'
}
}

then: "authentication http error should happen"
response.status == 401
}
}

使用 $ grails test-app functional: 运行测试

关于Grails 功能测试插件和 RESTful 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21894485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com