2013-11-22 1 views
1

Мы используем фреймворк крыши для построения сервера REST и spock для тестирования.Спок: более подробная информация об ошибке

мне надо настроить выход Спока, когда состояние неудовлетворенным (например, StackTrace или свалка ответ.)

Например, следующий тест:

def "Vk: Auth mr. John"() { 
    when: 
    request.param "vkId", vkId 
    request.param "vkToken", vkToken 
    request.port 5050 
    def resp = request.post "/auth/vk" 

    then: 
    resp.statusCode() == 200 
    def json = resp.jsonPath() 

    with(json) { 
     response != null 
     response.token != null 
     response.userId != null 
    } 
} 

Производит следующие ошибки:

Condition not satisfied: 

resp.statusCode() == 200 
| |   | 
| 500   false 
[email protected] 

Как могу ли я сделать spock для предоставления более подробной информации, такой как тело ответа?

ответ

1

Я думаю вы должны сделать что-то вроде:

assert resp.statusCode == 200, 
     "resp.statusCode == $resp.statusCode (not 200) $resp.body" 
+0

Другим вариантом является включение 'resp.body' в утверждении. –

+0

Спасибо, отличный намек. Но как только я получаю результат '' 'assert resp.statusCode() == 200," not 200 $ {resp.body(). Print()} "' '' Я получаю '' 'IOException: Попытка прочитана в закрытом потоке' '' coz уже считывает данные в замещаемой строке – ruX