簡體   English   中英

如何在 Rust 的同一 lib.rs 文件中的測試中引用常量?

[英]How to reference a constant in a test in the same lib.rs file in Rust?

我在 lib.rs 中定義了一個常量,如下所示:

const GREEN: LedColor = LedColor(0, 255, 0);

在同一個 lib.rs 文件中,我也有嘗試使用 GREEN 的測試,如下所示:

#[cfg(test)]
mod tests {
    use {OFF, YELLOW, RED, GREEN};
    #[test]
    fn some_test() {//...}

但是運行 cargo test 會出現錯誤,例如:

路徑中沒有綠色

如何在同一文件中的測試中引用常量 GREEN?

您需要使用super關鍵字來引用父模塊。

模塊tests實際上是crate::tests ,這意味着GREEN你寫它的方式真的是crate::tests::GREEN 那不存在,因為GREEN在父模塊中定義。 所以你需要:

#[cfg(test)]
mod tests {
    use super::{OFF, YELLOW, RED, GREEN};
}

這些被認為是私有的,因此正常use crate::{names}將不起作用。

您可以使用use super::**使它們全部可用,作為簡寫),它從父模塊引入私有名稱。 (雖然這不是我能找到的記錄)

如果您不介意將它們公開,您可以添加pub然后使用use crate::{names}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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