Rustで結果が特定のエラーになることをテストする方法よく分からん、もっといいのある気がするんだが。
今エラーはenumで、ある特定のバリアントになったらテスト成功という話。Okでも他のバリアントでもテスト失敗。
このやり方がよいようには全く思われない……。
match super::inbox(&r, act) {
Err(res) => {
match res {
super::Error::Unauthorized => assert!(true),
_ => assert!(false, "Error variant should be Unauthorized")
}
},
_ => assert!(false, "doesn't raise any error")
};
@KitaitiMakoto こんな感じでしょうか:
assert!(matches!(super::inbox(&r, act), Err(super::Error::Unauthorized));
std::matches - Rust
https://doc.rust-lang.org/stable/std/macro.matches.html
(閉括弧がひとつ足りてなかった……)