喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(=・ω・=)
11.5.1. 测试函数返回值为Result
枚举
到目前为止,测试运行失败的原因都是因为触发了panic
,但可以导致测试失败的方式也不止它。
使用Result
枚举的测试函数也比较好写,只需要接收被测试函数的返回值,符合期待的就返回Ok
变体,反之就返回Err
变体,又因为枚举类型允许变体附带数据,所以还可以在Err
上附带一些错误信息来更好的词帮助纠错。
如果是Ok
,就代表测试通过;反之就是失败。
看个例子:
#[test]
fn it_works() -> Result<(), String> {
let result = add(2, 2);
if result == 4 {
Ok(())
} else {
Err(String::from("two plus two does not equal four"))
}
}
it_works
函数有Result<(), String>
返回类型。当测试通过时为Ok(())
,当测试失败时为Err
,其中包含一个带报错信息的String
类型 。
这个测试肯定是通过的。
使用Result
枚举来测试有一个注意,就是不要在使用Result<T, E>
编写的测试上使用should_panic
属性(这个属性在上一篇文章中有讲),因为使用Result<T, E>
编写的测试会返回Err
而不是直接触发恐慌。