Интересно, почему мы не используем функцию или макрос для проверки, будет ли функция паниковать.
Из книги :
В дополнение к проверке того, что наш код возвращает правильные значения, которые мы ожидаем, также важно проверить, что наш код обрабатывает ошибки, как мы ожидаем.
Мы делаем это, добавляя еще один атрибут should_panic
в нашу тестовую функцию. Этот атрибут проходит тест, если код внутри функции паникует; тест не пройдёт, если код внутри функции не паникует.
Почему это не макрос, как assert!
?
Этот код будет понятен и стандартизирован с другими макросами тестирования.
#[test]
fn greater_than_100() {
should_panic!(Guess::new(200));
}