Подтвердить что ты не робот

Groovy 'assert': как отобразить значение?

Как показать значение, истинное или ложное в groovy? Я использую Eclipse в качестве моей IDE.

    assert 4 * ( 2 + 3 ) - 6 == 14 //integers only

И также я не очень хорошо понимаю "assert" в Groovy. Это как оператор if()/boolean в Java?

Какую роль играет "assert" в groovy?

4b9b3361

Ответ 1

Утверждение похоже на if, оно проверяет выражение, которое вы предоставляете: если выражение истинно, оно продолжает выполнение для следующего оператора (и ничего не печатает), если выражение ложно, оно вызывает AssertionError.

Вы можете настроить сообщение об ошибке, предоставляющее сообщение, разделенное двоеточием, следующим образом:

assert 4 * ( 2 + 3 ) - 5 == 14 : "test failed"

который будет печатать:

java.lang.AssertionError: test failed. Expression: (((4 * (2 + 3)) - 5) == 14)

но мне пришлось изменить значения вашего теста, чтобы он не сработал.

Использование утверждений зависит от вашего вкуса: вы можете использовать, чтобы утверждать что-то, что должно быть истинным, прежде чем приступать к работе (см. дизайн по контракту).

например. функция, для которой требуется постовое число для работы, может проверить, что аргумент положителен, делая утверждение как первое утверждение:

def someFunction(n) {
    assert n > 0 : "someFunction() wants a positive number you provided $n"
    ...
}

Ответ 2

Groovy утверждения теперь довольно впечатляют! Они фактически распечатывают значение каждой переменной в инструкции (что является фантастическим для отладки)

например, он может печатать что-то вроде этого, если b равно 5, a - это {it ^ 2}, а c - 15:

assert( a(b)  == c)
.       | |   |  |
.      25 |  !=  15
.         5

(Ну, что-то вроде этого - Groovy, вероятно, будет намного лучше).

Если бы мы могли просто получить этот вид распечатки в строке исключения...

Ответ 3

assert 'утверждает, что результат выражения будет истинным