對於單元測試,您不應該測試私有方法,但是對於集成測試(使用像MSTest或NUnit這樣的單元測試框架),我非常希望對內部API調用測試網址,以確保當第三方API供應商更改其後端時當前的代碼工作。由於系統的複雜性(愚蠢的API有數百個參數),我已經將它的大部分隱藏在接口和IoC之後,其中API助手類完全在我們的數據層庫內部。我不想改變這個,因爲它曾經是公開的,我們發現這個奇怪的開發者對於這個項目來說是新手,一般來說沒有經驗的人會立即開始直接從網站代碼調用api。讓班級內部應該確保他們至少在摧毀我們的抽象層之前思考。集成測試私有類和方法
我一直在建立大量的反射代碼來獲取內部方法,但它工作得不太好,正在得到sphagetti-ish。有沒有辦法讓這些方法對某些庫公開顯示?有沒有辦法讓測試libray把自己當作包含api的庫的一部分?這是最佳做法嗎?
根據您使用的語言不同,您可以設置庫類的可見性並從它們派生出一些測試。假設你使用了一個受保護的。 – 2010-02-08 22:43:23
根據您提到的NUnit和MSTest,我在回答中假定您使用的是基於.net的語言,如果這不正確,它會對您有用,讓我們知道=) – Rob 2010-02-08 22:52:43
.NET C#mix 3.5(用於測試)和2.0(用於圖層代碼),後者歸功於stage/uat/prod服務器的延遲升級。 – Aquinas 2010-02-08 23:37:29