导出功能只对模块测试?

use*_*932 4 rust

我使用标准方式(根据Rust书)编写单元测试:

fn func() -> i32 {
    0
}

#[cfg(test)]
mod test {
    use super::*;

    #[test]
    fn func_test() {
        let res = func();
    }
}
Run Code Online (Sandbox Code Playgroud)

为了使它编译,我必须func通过pub关键字公开.

是否可以func私有,但在内部测试模块中使用它?

Luk*_*odt 8

从Rust 1.15开始,您的代码可以正常运行!

以前只通过通配符导入(例如use super::*;)导入公共符号.此行为已更改,如RFC 1560中所指定.您可以在编辑日志中查看我之前的完整答案.