我正在使用 Groovy RESTClient类为我一直在创作的 Java WebServices 编写一些(spock)验收测试。
我遇到的一个挫折是在测试响应时......
200
状态很简单:
when: def result = callServiceWithValidParams()
then: result.status == 200
但是400+
我被迫要么包装在 a 中try-catch
,要么测试默认情况下抛出的HttpResponseException
那个。RESTClient
when:
callWithInvalidParams()
then:
def e = thrown(Exception)
e.message == 'Bad Request'
这有点好,如果有点令人沮丧……但我想做得更好。
理想情况下,我希望我的测试更像这个(如果你不使用 groovy/spock 可能会令人困惑)
@Unroll
def "should return #statusCode '#status' Response"()
{
when:
def result = restClient.get(path: PATH, query: [param: parameter])
then:
result.status == statusCode
where:
status | statusCode | parameter
'OK' | 200 | validParam
'Bad Request' | 400 | invalidParam
}
在上面的示例中,“错误请求”案例失败。不是返回一个值,而是restClient.get()
抛出HttpResponseException