Update ch11-01-writing-tests.md

这里的“_ **”应该是不小心打多了
pull/881/head
qwer252 1 week ago committed by GitHub
parent a10aa1a25b
commit f100187512
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -197,7 +197,7 @@ Cargo 编译并运行了测试。可以看到 `running 1 test` 这一行。下
需要注意的是,在一些语言和测试框架中,断言两个值相等的函数的参数被称为 `expected``actual`,而且指定参数的顺序非常重要。然而在 Rust 中,它们则叫做 `left``right`,同时指定期望的值和被测试代码产生的值的顺序并不重要。这个测试中的断言也可以写成 `assert_eq!(add_two(2), result)`,这时失败信息仍同样是 `` assertion failed: `(left == right)` ``。
`assert_ne!` 宏在传递给它的两个值不相等时通过,而在相等时失败。当我们不确定值**会**是什么,不过能确定值绝对**不会**_ **是什么的时候,这个宏最有用处。例如,如果一个函数保证会以某种方式改变其输入,不过这种改变方式是由运行测试时是星期几来决定的,这时最好的断言可能就是函数的输出不等于其输入。
`assert_ne!` 宏在传递给它的两个值不相等时通过,而在相等时失败。当我们不确定值**会**是什么,不过能确定值绝对**不会**是什么的时候,这个宏最有用处。例如,如果一个函数保证会以某种方式改变其输入,不过这种改变方式是由运行测试时是星期几来决定的,这时最好的断言可能就是函数的输出不等于其输入。
`assert_eq!``assert_ne!` 宏在底层分别使用了 `==``!=`。当断言失败时,这些宏会使用调试格式打印出其参数,这意味着被比较的值必须实现了 `PartialEq``Debug` trait。所有的基本类型和大部分标准库类型都实现了这些 trait。对于自定义的结构体和枚举需要实现 `PartialEq` 才能断言它们的值是否相等。需要实现 `Debug` 才能在断言失败时打印它们的值。因为这两个 trait 都是派生 trait如第五章示例 5-12 所提到的,通常可以直接在结构体或枚举上添加 `#[derive(PartialEq, Debug)]` 注解。附录 C [“可派生 trait”][derivable-traits] 中有更多关于这些和其他派生 trait 的详细信息。

Loading…
Cancel
Save