仅将导出函数用于模块测试?

5

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

fn func() -> i32 {
    0
}

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

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

为了编译通过,我需要通过 pub 关键字将 func 设为公共函数。
是否可能将 func 设为私有函数,但在内部测试模块中使用它?
1个回答

9

截至Rust 1.15版本,您的代码可以无障碍运行!

以前,只有公共符号通过通配符导入(比如use super::*;)。这种行为在RFC 1560中指定的规则下发生了改变。您可以在编辑日志中查看我的完整先前答案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接