C#單元測試中的私有方法:運行時錯誤及解決方案
Visual Studio 透過自動產生的存取器類別來單元測試私有方法的功能看似很方便,然而,在某些情況下,此類測試會遇到執行時間錯誤,如提供的範例程式碼所示。問題源自於編譯器推斷的類型 (TypeA_Accessor) 與實際執行時間類型 (TypeA) 之間的差異,導致在清單新增元素時出現轉換錯誤。
解決此問題,請考慮以下方法:
-
使用 PrivateObject(適用於 .NET Core 2.0 之前的版本): PrivateObject 類別允許存取物件的私有成員,包括方法。它可以像問題解答中提供的範例那樣使用。但是,請注意,.NET Core 2.0 中已刪除對 PrivateObject 的支援。
或者,請考慮以下一般建議:
-
避免測試私有方法: 測試私有方法可能會導致脆弱的測試,當內部實作細節變更時,這些測試可能會中斷。相反,應專注於測試類別的公共介面。
-
避免在單元測試中操作物件狀態: 單元測試通常應驗證特定行為,而無需更改被測試物件的狀。這確保後續測試不受先前測試結果的影響。
以上是我應該在 C# 中對私有方法進行單元測試嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!