Rust 檔案提到該指令#[test]用于標記僅在測驗模式下編譯和執行的函式。那么有#[cfg(test)]指令的原因是什么?
uj5u.com熱心網友回復:
#[cfg(test)]與任何其他 一樣#[cfg],可以應用于任何代碼片段(常量、模塊、函式、陳述句...),并在不編譯測驗時將其從編譯中過濾掉。#[test]只適用于函式,除了在不編譯測驗時移除函式外,還將其注冊為單元測驗。
例如,您可以使用#[cfg(test)]不編譯整個測驗模塊(以節省編譯時間),或者不編譯僅用于測驗的代碼,例如測驗助手或 crate 中的其他測驗邏輯。
uj5u.com熱心網友回復:
#[cfg(test)]告訴 Rust 編譯器以下代碼只應在測驗配置處于活動狀態時編譯。
#[test]告訴 Rust 編譯器下面的代碼只應在測驗配置處于活動狀態時編譯,并且下面的函式是一個測驗。
例如,您可能在test_helper內部有一個mod tests不測驗任何東西的輔助函式,不應將其視為單獨的測驗。所以你希望它只為測驗而編譯,而不是作為單獨的測驗運行cargo test。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/537369.html
標籤:单元测试测试锈铁锈货物
上一篇:如何模擬呼叫API的函式
