У меня есть функция Rust, которая panic
при некоторых условиях, и я хочу написать тестовый пример, чтобы проверить, паникует ли функция или нет. Я не мог найти ничего, кроме макросов assert!
и assert_eq!
. Есть ли какой-нибудь механизм для тестирования этого?
Я мог бы создать новую задачу и проверить, паникует ли эта задача или нет. Имеет ли это смысл?
Возврат Result<T, E>
не подходит в моем случае.
Я хочу добавить поддержку признака Add
к типу Matrix
, который я реализую. Идеальный синтаксис для такого добавления будет выглядеть так:
let m = m1 + m2 + m3;
где m1
, m2
, m3
- все матрицы. Следовательно, тип результата Add
должен быть Matrix
. Что-то вроде следующего было бы слишком загадочным:
let m = ((m1 + m2).unwrap() + m3).unwrap()
В то же время функция add()
должна проверять, что две добавляемые матрицы имеют одинаковую размерность. Таким образом, add()
должен паниковать, если размеры не совпадают. Доступная опция panic!()
.