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

问题描述 投票:0回答:1

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

rust integration-testing directory-structure
1个回答
0
投票

将您的src/lib.rs设为:

pub mod adder {
...
}

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

然后在集成测试文件中(在/tests/下,请执行:

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

fn main() {
...
}
    
© www.soinside.com 2019 - 2024. All rights reserved.