导出功能只对模块测试?

时间:2016-07-03 10:01:31

标签: rust

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

fn func() -> i32 {
    0
}

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

    #[test]
    fn func_test() {
        let res = func();
    }
}

要进行编译,我必须通过func关键字公开pub

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

1 个答案:

答案 0 :(得分:8)

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

以前只通过通配符导入导入公共符号(如use super::*;)。此行为已更改为RFC 1560中指定的行为。您可以在edit logs中看到我之前的完整答案。