瞭解如何將實際用戶端實作項目虛設常式化,以便插入模擬項目進行單元測試。使用 Google Cloud Rust 適用的用戶端程式庫搭配模擬用戶端,即可編寫可控的可靠單元測試,不會發出網路呼叫或產生帳單費用。
依附元件
Rust 提供多種模擬架構,本指南使用 mockall。將其新增為開發依附元件:
cargo add --dev mockall
此外,本指南使用 Speech 用戶端,方便您瞭解範例 (但這些概念適用於所有用戶端)。
在 Cargo.toml 檔案中新增必要依附元件:
cargo add google-cloud-speech-v2 google-cloud-lro
模擬用戶端
如要使用模擬用戶端測試程式碼,請定義模擬結構體、為測試情境設定預期行為,然後將該模擬項目注入應用程式邏輯。以下範例示範了這個工作流程。
首先,請新增 use 陳述式來簡化程式碼:
假設應用程式有一個函式,會使用 Speech 用戶端呼叫 GetRecognizer,設定要求的 name 欄位,並處理伺服器回應。
您可以測試應用程式如何處理服務的不同回應。
接著定義模擬結構體。這個結構體會實作 speech::stub::Speech 特徵。
建立模擬的執行個體。請注意,mockall::mock! 巨集會在先前定義的結構體名稱前面加上 Mock 前置字串。
設定模擬的預期行為。舉例來說,預期程式碼會使用特定名稱呼叫 GetRecognizer,並模擬服務的成功回應。
使用模擬建立 Speech 用戶端:
呼叫函式:
驗證結果:
模擬錯誤
模擬錯誤與模擬成功類似。如要模擬錯誤,請修改模擬傳回的結果。
以 from_stub() 建構的用戶端沒有內部重試迴圈,而是直接將所有錯誤從虛設常式傳回應用程式。
後續步驟
如要查看本指南的完整程式碼,請參閱 GitHub 上 google-cloud-rust 存放區中的來源檔案。