Можно ли попросить ржавчину оценить все утверждения в одном модульном тесте? Давайте рассмотрим следующий модульный тест.
#[test]
fn it_works() {
assert_eq!(2 + 2, 5);
assert_eq!(2 + 2, 4);
assert_eq!(2 + 2, 6);
}
Я хотел бы видеть, что как первое, так и последнее утверждения терпят неудачу. Прямо сейчас ржавчина паникует на первом и перестает оценивать оставшиеся проверки. Единственное решение, которое я придумал, это использовать panic::catch_unwind
:
use std::panic;
#[test]
fn it_works2() {
panic::catch_unwind(|| {
assert_eq!(2 + 2, 5);
});
assert_eq!(2 + 2, 4);
assert_eq!(2 + 2, 6);
}
Есть ли более элегантный способ сделать это?
Я понимаю, что существуют разные мнения о множественных утверждениях в единичный тестовый тест, но я не собираюсь вмешиваться ни в одну из сторон этого обсуждения, просто чтобы знать, как это сделать в ржавчине.