我使用标准方法(根据Rust book)编写单元测试: fn func() -> i32 { 0 } #[cfg(test)] mod test { use super::*; #[test] fn func_test() { let res = func(); } } 为了编译通过,我需要通过 pub 关键字将 func 设为公共函数。是否可能将 func 设为私有函数,但在内部测试模块中使用它?
截至Rust 1.15版本,您的代码可以无障碍运行! 以前,只有公共符号通过通配符导入(比如use super::*;)。这种行为在RFC 1560中指定的规则下发生了改变。您可以在编辑日志中查看我的完整先前答案。