我對單元測試比較新,對C#很新,但我一直在嘗試使用靜態方法來測試靜態類的代碼,而且好像我有編寫大量的樣板代碼以便測試,那麼代碼也可能需要測試。在C#.NET中測試靜態類和方法
例如:我正在使用System.Web.Security.Membership類,其上有一個方法ValidateUser
。看起來我需要創建一個包含方法ValidateUser
的接口IMembership
,然後創建一個類MembershipWrapper
,該類實現IMembership
,實現方法ValidateUser
並將參數傳遞給實際的Membership
類。然後我需要在我的類上使用Membership
來引用包裝器的屬性,以便在測試期間爲模擬對象注入依賴項。
因此,要測試使用Membership
的一行代碼,我必須創建一個接口和一個類,然後將屬性和構造函數代碼添加到我的類中。這似乎是錯誤的,所以我一定會出錯。我應該怎麼做這個測試?我簡要介紹了一些依賴注入的框架/庫,但它們似乎仍然需要大量的樣板,或者對底層的情況有深入的瞭解。
我所有的做我的代碼鬆散耦合,和依賴注入似乎想做到這一點。看起來如果對於每個應用程序來說這麼基本和重要的東西需要這樣多的樣板代碼,它將會被解決,但是我找不到任何看起來像是真正解決了問題的東西。 – danpalmer
@danpalmer實際上你可以使用類似於TypeMock的東西來模擬靜態方法,但是這不會讓你的代碼鬆散耦合 –
是的,TypeMock並不是真正的選擇,因爲它是付費軟件,我堅持開源的東西正如我可以在這一點上。但謝謝你的建議。 – danpalmer