簡體   English   中英

如何在不同的測試目錄中使用 rust 模塊?

[英]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.rsadd 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM