如何测试返回 Result 的函数?

问题描述 投票:0回答:2

我有一个返回

Result<(), MyError>
的函数,其中:

enum MyError {Error1, Error2}

我目前正在做以下事情:

#[test]
fn test_result_function() {
    assert_eq!((), result_function().unwrap());
}

这可行,但看起来很尴尬。一开始我想做的是:

assert!(result_function().is_ok());

但是当不正常时,测试结果并没有在任何地方给出错误。我应该如何测试这个功能?

testing rust
2个回答
3
投票

怎么样

assert_eq!(Ok(()), result_function());

这个需要

#[derive(PartialEq,Debug)]
enum MyError{Error1, Error2}

上班并会告诉你

`(left == right)` (left: `Ok(())`, right: `Err(Error1)`)'

测试时,当测试表明它应该返回

result_function
时,您的
Error1
返回
Ok(())


0
投票

您可以简单地检查结果是否为

Ok
,如下所示:

assert!(result_function().is_ok())

当你期待

Err
:

assert!(result_function().is_error())
© www.soinside.com 2019 - 2024. All rights reserved.