Sea*_*rry 5 unit-testing idioms rust
Rust书说,使用"测试"模块是进行单元测试的惯用方法.但是,如果该函数未标记为"pub",我无法在tests模块中看到超级模块的函数.那么如何测试内部函数呢?
我的第一直觉是寻找#ifdef关键字的方法pub.我过去曾为C++测试做过这个.对于Rust,我所做的只是对模块中的私有函数进行测试,然后在"tests"模块中测试公共接口.
我做得对吗?
将测试模块嵌套在包含私有方法或结构的模块中:
mod inners {
fn my_func() -> u8 { 42 }
mod test {
#[test]
fn is_answer() {
assert_eq!(42, super::my_func());
}
}
}
Run Code Online (Sandbox Code Playgroud)
当然,我不同意你应该测试一般的私人东西,但这是一个不同的讨论.
| 归档时间: |
|
| 查看次数: |
995 次 |
| 最近记录: |