Как вы тестируете конкретную ошибку Rust? - PullRequest
0 голосов
/ 02 ноября 2018

Я могу найти способы обнаружить, если Rust выдаст мне ошибку,

assert!(fs::metadata(path).is_err())

источник

Как проверить конкретную ошибку?

1 Ответ

0 голосов
/ 02 ноября 2018

Вам нужно получить Option от Result с .err и сравнить его с Some(MyError)

#[derive(Debug, PartialEq)]
enum MyError {
    TooBig,
    TooSmall,
}
pub fn encode(&self, decoded: &'a Bytes) -> Result<&'a Bytes, MyError> {

    if decoded.len() > self.length() as usize {
        Err(MyError::TooBig)
    } else {
        Ok(&decoded)
    }
}
assert_eq!(fixed.encode(&[1]), Err(MyError::TooBig));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...