РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
824 of 1245 menu

Макрос panic! в тестах

Макрос panic! вызывает панику и немедленно прерывает выполнение текущего теста. Он принимает строку с сообщением об ошибке, которая выводится в консоль при запуске тестов. Если тест завершается паникой, он считается проваленным.

Синтаксис

panic!("сообщение об ошибке")

Пример

Давайте напишем тест, который всегда завершается паникой с сообщением:

fn check_value(x: i32) -> i32 { if x < 0 { panic!("negative value"); } x } fn main() { let res = check_value(5); println!("{}", res); }

Результат выполнения кода:

5

Пример

Давайте вызовем функцию с отрицательным значением, что приведет к панике:

fn check_value(x: i32) -> i32 { if x < 0 { panic!("negative value"); } x } fn main() { let res = check_value(-3); println!("{}", res); }

Результат выполнения кода:

thread 'main' panicked at 'negative value'

Пример

Давайте проверим условие и вызовем панику, если оно не выполнено:

fn test_sum(a: i32, b: i32, expected: i32) { let res = a + b; if res != expected { panic!("expected {}, got {}", expected, res); } println!("test passed"); } fn main() { test_sum(2, 3, 5); }

Результат выполнения кода:

"test passed"

Смотрите также

  • макрос assert!,
    который проверяет истинность условия в тестах
  • макрос assert_eq!,
    который проверяет равенство двух значений
  • атрибут should_panic,
    который проверяет, что тест вызывает панику
  • атрибут should_panic expected,
    который проверяет сообщение паники в тесте
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить