在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的代码组织的全面摘要,那将很棒。谢谢。
答案 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() {
...
}