Posso substituir a resposta “HttpResponseException” padrão de RESTClient para> 399 códigos de retorno?
Estou usando o GroovyRESTClient classe para fazer escrever alguns (spock) Testes de aceitação para Java WebServices Eu fui autoria.
Uma frustração que tive foi testar as respostas ...
200
Os status são fáceis:
when: def result = callServiceWithValidParams()
then: result.status == 200
Mas com400+
Eu sou forçado a enrolar em umtry-catch
ou teste para oHttpResponseException
naquelaRESTClient
lança por padrão.
when:
callWithInvalidParams()
then:
def e = thrown(Exception)
e.message == 'Bad Request'
Isso é meio que OK, se é um pouco frustrante ... mas eu quero fazer melhor.
Idealmente, quero que meus testes se assemelhem mais a isso (pode ser confuso se você não usa 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
}
No exemplo acima, o caso 'Pedido incorreto' falha. Em vez de retornar um valor,restClient.get()
lançaHttpResponseException