[英]How to use rust module inside a different test directory?
這是我的目錄結構,
.
├── Cargo.lock
├── Cargo.toml
├── src
│ ├── add.rs
│ └── main.rs
└── tests
└── add_test.rs
add.rs
pub fn add(a: u8, b: u8) -> u8 {
return a + b;
}
main.rs
pub mod add;
fn main() {}
add_test.rs
#[cfg(test)]
mod tests {
#[test]
fn add_test() {
// how do I use add.rs module?
}
}
在add_test
function 如何測試add.rs
的add
function?
請注意,您正在使用mod add;
. 這不是一個公共模塊,這意味着它在您的 crate 之外不可用。
要使其在 crate 之外可用(因此在測試中可用),您可以將模塊公開,或重新導出 function 本身。 此外,要做到這一點,您需要在src
中放置一個lib.rs
文件來放置導出:
// Make module public
pub mod add;
// Make the function available at the root of the crate
pub use add::add;
然后在測試中使用您的 function,您將其稱為與為不同的板條箱調用 function 相同的方式。 假設您的箱子被命名為your-crate
:
// If your module is public
your-crate::add::add(2,3);
// If you reexport the function
your-crate::add(2,3);
請參閱Rust 書中有關測試組織的章節中的更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.