Я работаю с:Отчеты Spock & Spock: как «поймать» и настроить сообщение об ошибке для AssertionError?
- Спок Ядро
- Спок Отчеты
- Спок Spring
- Spring MVC Тестирование
и у меня есть следующий код:
@FailsWith(java.lang.AssertionError.class)
def "findAll() Not Expected"(){
given:
url = PersonaUrlHelper.FINDALL;
when:
resultActions = mockMvc.perform(get(url)).andDo(print())
then:
resultActions.andExpect(status().isOk())
.andExpect(content().contentType(MediaType.APPLICATION_XML))
}
код не удается (как ожидается), потому что проверенный метод действительно возвращает(MediaType.APPLICATION_JSON)
вместо (MediaType.APPLICATION_XML)
.
Так, что причина @FailsWith(java.lang.AssertionError.class)
.
Даже если я использую @FailsWith(value=java.lang.AssertionError.class, reason="JSON returned ...")
я не в состоянии видеть reason
через Спок Reports
Вопрос Один: как я могу видеть reason
на Спок Reports?.
Я знаю, что Спок предлагает метод выброшен(), поэтому я могу сделать:
then:
def e = thrown(IllegalArgumentException)
e.message == "Some expected error message"
println e.message
К сожалению выброшен не работает AssertionError.
Если я использую thrown(AssertionError)
метод тест не проходит, уникальный путь через @FailsWith
, но я не в состоянии получить сообщение об ошибке из AssertionError
Вопрос Два как можно получить сообщение Ошибка от AssertionError?
Я знаю, что я могу сделать что-то вроде
then: "Something to show on Spock Reports"
Но просто интересно, если вопрос два могут быть решены ..