在 Rust 中组织代码/测试的正确方法是什么?



在 Rust 手册的第 11 章第 3 节 (11.3( 中,它讨论了将集成测试引入项目的过程。简而言之,为"src"创建一个名为"tests"的同级目录,并在"tests"目录中的文件中找到您的测试代码。书中示例中的文件内容如下所示:

use adder;
#[test]
fn it_adds_two() {
assert_eq!(4, adder::add_two(2));
}

'src/lib.rs' 文件在模块中声明了其代码:

mod adder {
...
}

这对我不起作用。我不得不删除"lib.rs"中的模块声明,并将其添加到集成测试文件中的"use adder;"声明之前:

extern crate adder;

所以,我很困惑。语言是否发生了变化,文档还没有跟上?库('src/lib.rs'(中包含的代码是否不允许组织成模块?如果有人能指出我 Rust 中代码组织的全面摘要,那就太好了。谢谢。

src/lib.rs变成:

pub mod adder {
...
}

或者,如果您在名为adder.rs的文件中有一个模块,那么只需pub mod adder;

需要注意的重要一点是,每个文件都是一个模块,需要pub关键字才能从 crate 中公开模块。

然后在集成测试文件(在/tests/下(中执行以下操作:

use <cratename>::adder::<whatever you want to import or *>;
fn main() {
...
}

相关内容

  • 没有找到相关文章

最新更新