|
|
|
@ -313,7 +313,7 @@ Cargo 编译并运行了测试。可以看到 `running 1 test` 这一行。下
|
|
|
|
|
|
|
|
|
|
现在 `it_works` 函数的返回值类型为 `Result<(), String>`。在函数体中,不同于调用 `assert_eq!` 宏,而是在测试通过时返回 `Ok(())`,在测试失败时返回带有 `String` 的 `Err`。
|
|
|
|
|
|
|
|
|
|
这样编写测试来返回 `Result<T, E>` 就可以在函数体中使用问号运算符,如此可以方便的编写任何运算符会返回 `Err` 成员的测试。
|
|
|
|
|
这样编写测试来返回 `Result<T, E>` 就可以在函数体中使用问号运算符,如此可以方便的编写任何会返回 `Err` 变体的操作的测试。
|
|
|
|
|
|
|
|
|
|
不能对这些使用 `Result<T, E>` 的测试使用 `#[should_panic]` 注解。为了断言一个操作返回 `Err` 成员,**不要**对 `Result<T, E>` 值使用问号表达式(`?`)。而是使用 `assert!(value.is_err())`。
|
|
|
|
|
|
|
|
|
|