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

Как отобразить значение, является ли оно true или false в groovy? Я использую Eclipse в качестве своей IDE.

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

а также я не понимаю "утверждать" слишком хорошо в Groovy. Это похоже на Оператор if () / boolean в Java?

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

3 ответов


утверждение подобно 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"
    ...
}

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

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

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

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

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


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