Как я могу добавить больше данных в сообщение об утверждении?

У Спока отличная поддержка утверждений. Но у меня есть одна проблема: я хочу добавить больше контекстных данных (например, URL проверенной страницы) в информацию об утверждении.
Я пробовал assert a == b, [context], но в этом случае Spock не печатает значения a и b.


person fedor.belov    schedule 12.11.2013    source источник


Ответы (3)


Вы можете либо полагаться на вывод условия по умолчанию, либо определить собственное сообщение, как уже объяснялось в другом ответе (например, assert a == b : "my message involving $url"). Кроме того, вы можете настроить имя метода:

@Unroll
def "log in to #theUrl"() {
    ...
    where:
    theUrl = ...
}

Обычно вы используете это, если хотите повторить один и тот же тест для разных URL-адресов, но вы также можете использовать его для одного URL-адреса.

person Peter Niederwieser    schedule 12.11.2013

Почему бы просто не добавить a и b в список после двоеточия?

assert a == b, [a, b, context]

Я знаю, что это избыточно, и сообщение не будет отформатировано в хорошем стиле Спока, но вы все равно можете отформатировать его с помощью GString так, как вам нужно.

person topr    schedule 12.11.2013

Я не верю, что ты можешь. Не знаю, как выглядит ваш тест, но, возможно, @Unroll аннотация может помочь?

person tim_yates    schedule 12.11.2013