Макрос assert!
Макрос assert! проверяет, истинно ли переданное ему
условие. Если условие истинно, выполнение продолжается
без каких-либо сообщений. Если условие ложно, макрос
вызывает панику и завершает программу. Параметром макрос
принимает логическое выражение, которое нужно проверить,
а также, опционально, сообщение для вывода при панике.
Макрос часто используется в тестах для проверки ожидаемого поведения кода.
Синтаксис
assert!(condition);
assert!(condition, "message");
assert!(condition, "message {}", arg);
Пример
Давайте проверим, что условие 1 + 1 == 2 истинно:
fn main()
{
assert!(1 + 1 == 2);
println!("ok");
}
Результат выполнения кода:
"ok"
Пример
Давайте проверим, что условие 1 + 1 == 3 ложно.
Программа завершится с паникой:
fn main()
{
assert!(1 + 1 == 3);
println!("ok");
}
Результат выполнения кода:
thread 'main' panicked at 'assertion failed: 1 + 1 == 3'
Пример
Давайте добавим собственное сообщение об ошибке при ложном условии:
fn main()
{
let res = 5;
assert!(res > 10, "res must be greater than 10, got {}", res);
}
Результат выполнения кода:
thread 'main' panicked at 'res must be greater than 10, got 5'
Смотрите также
-
макрос
assert_eq!,
который проверяет равенство двух значений -
макрос
assert_ne!,
который проверяет неравенство двух значений -
макрос
panic!,
который немедленно завершает программу с сообщением -
макрос
should_panic,
который проверяет, что тест вызывает панику