Rust单元测试应该如何组织?

40

我有一些在mod里的方法。这些方法需要进行测试,但它们是私有的。目前,我的单元测试就在同一个mod里,但我不确定这是否是正确的做法,因为我正在混合两种不同的事情。

我应该把我的单元测试放在另一个文件中吗?如果是这样,那么如何测试私有方法呢?

1个回答

41
建议将测试放置在它们自己的模块中。这个模块应该是你想要测试代码的模块的子模块(它可以定义在同一个或不同的文件中)。
#[cfg(test)]
mod tests {
    #[test]
    fn test_some_stuff() {
      // ... test code ...
    }
}

私有方法对于子模块并不是私有的,但你仍然需要使用 use super::some_name; 导入它们。

顺便说一下,这在 Rust Book 的 test organization 章节(11.3)中都有解释。


4
可以提供一个目录结构作为示例吗? - EduBic

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