Пользовательские сообщения в журнале для неудачных тестов с Geb/Spock?

Я занят тестом e2e в Geb/Spock, мне было интересно, как я могу добавить пользовательские сообщения. Теперь я получаю только трассировку стека, как это:

geb.error.RequiredPageContentNotPresent: The required page content 'pages.patientConversation.PcModal -> contact: geb.navigator.EmptyNavigator' is not present
    at geb.content.TemplateDerivedPageContent.require(TemplateDerivedPageContent.groovy:60)
    at geb.content.PageContentTemplate.create_closure1(PageContentTemplate.groovy:63)
    at geb.content.PageContentTemplate.create_closure1(PageContentTemplate.groovy)

так далее...

Это пример моего теста:

 def "allow for searching contacts"() {
    when:
    to LoginPage
    login(emailAddress, defaultPassword)
    then:
    at QuickBar
    when:
    startButton.click()
    then:
    at Modal
    when:
    selectContactButton.click()
    contactSearchField.value(context.pcUser2.surname)
    then: "the contact is shown in the search results"
    contact.isDisplayed()
}

Я подумал, что текст "контакт отображается в результатах поиска" будет присутствовать в сообщении об ошибке, но, видимо, это не так. Есть ли другой способ в Geb of Spock печатать собственные сообщения для большей ясности?

Специально для "at checkers" я хотел бы иметь пользовательские сообщения, потому что, когда at check проваливается, вы получаете только:

java.lang.NoSuchMethodError: geb.error.GebAssertionError.<init>(Ljava/lang/Object;Ljava/lang/Throwable;)V

at geb.waiting.WaitTimeoutException.<init>

так далее

РЕДАКТИРОВАТЬ: Хм-м-м, теперь я понимаю, что тест не пройден, потому что он также проверяет наличие необходимого содержимого страницы перед выполнением "затем". Тем не менее, я хотел бы иметь возможность добавлять пользовательские сообщения (особенно для "в шашки")... Кто-нибудь знает, возможно ли это?

1 ответ

Вы можете использовать пользовательское сообщение, чтобы добавить пользовательское сообщение в WaitTimeoutException

class HomePage extends Page {

    static at = {
        waitFor(message:"My custom message")    {title == "Acme Corporation"}
        waitFor(message:"My custom message",20) {$("#roadRunner")}
    }
}
Другие вопросы по тегам