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

时间:2020-06-14 12:47:19

标签: rust integration-testing directory-structure

在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的代码组织的全面摘要,那将很棒。谢谢。

1 个答案:

答案 0 :(得分:0)

将您的src/lib.rs放入:

pub mod adder {
...
}

或者如果您在名为adder.rs的文件中包含模块,则只需放入pub mod adder;

要注意的重要一点是,每个文件都是一个模块,并且需要pub关键字才能从包装箱中暴露该模块。

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

use <cratename>::adder::<whatever you want to import or *>;

fn main() {
...
}
相关问题