Пользовательские сообщения в журнале для неудачных тестов с 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")}
}
}