首頁 » C#開發 » 使用UnitTest專案測試non-public組件(類別、方法)

使用UnitTest專案測試non-public組件(類別、方法)

作者:

分類:

在開發過程常會用單元測試來驗證系統的功能,但單元測試因為是需要跨專案的,對於專案的可見性預設只有public,如果想要測試一些內部的功能該如何做?

近期有在開發類別庫,需要用單元測試來驗證內部封包的正確性,雖然可以暫時把類別改成public之後再改回來,除了很麻煩之外,主要是違反封裝的原則。

解決方法

方法其實很簡單,將類別及方法加上internal,並在類別庫專案(不是測試專案)的AssemblyInfo.cs內加入下面這行,來對外部特定組件增加可見度。

// 加入對外部組件的internal可見度
//"UnitTest"為測試專案的Namespace
[assembly: InternalsVisibleTo("UnitTest")]

加入這行之後就可在測試專案去參考該類別了。

結尾

以上為工作過程的問題紀錄
如果內容有誤,還請先進前輩不吝指教。

參考資料

「cian」的個人頭像

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *