10、Rust 测试全解析:从基础到高级技巧

Rust 测试全解析:从基础到高级技巧

1. 文档测试属性

文档测试(doctests)和 #[test] 函数类似,也支持一些属性来修改测试的运行方式。这些属性紧跟在表示代码块的三重反引号之后,多个属性之间用逗号分隔。以下是一些常用属性:
- should_panic :表示特定文档测试中的代码在运行时应该 panic。
- ignore :只有在使用 cargo test --ignored 标志运行时才检查该代码段。
- no_run :表示给定的文档测试应该编译但不运行。
- compile_fail :告诉 rustdoc 文档示例中的代码不应编译,用于向用户表明特定用法不可行,也可用于检查类型的某些静态属性。例如:

# struct MyNonSendType(std::rc::Rc<()>);
fn is_send<T: Send>() {}
is_send::<MyNonSendType>();

不过, compile_fail 是一个比较粗略的工具,它不会指出代码无法编译的原因。如果需要更细粒度的编译错误测试,可以考虑使用 trybuild crate。

2. 额外的测试工具

测试不仅仅是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值