我的用例非常简单--如果一个实际对象不是OK变量,我希望这个测试显式失败,显示它所包含的内容:
fn test_foo() {
let actual = fn_that_returns_result();
// not verbose enough in case it is actually an Err:
// assert!(res.is_ok());
}
我不能在这里做一个准确的比较,因为OK变量的内部状态是动态的.
下面的方法很管用,但我想知道它是不是很好,或者也许有一个更惯用的解决方案?
fn test_foo() {
let actual = fn_that_returns_result();
match res {
Ok(_) => {},
Err(err) => panic!("{}", err) // anyhow::Error
}
}
更新:为了清楚起见,我希望原始错误保持不变,不要在Assert中被覆盖(因此不能使用.expect
或通过assert!
的第二个参数覆盖它)