簡體   English   中英

是否有必要將類訪問修飾符更改為公共,以便從另一個程序集中進行單元測試?

[英]Is it worth to change class access modifier to public for unit testing from another assembly?

如果單元測試駐留在另一個程序集中,是否有必要將類訪問修飾符(無或本來是內部的)更改為公開的,以進行單元測試? private或internal表示該類已封裝在程序集中。 如果答案是否定的,C#中的解決方法是什么?

解決此問題的最簡單方法是應用測試驅動開發 (TDD),它比設計方法更多是一種反饋機制。

使用TDD時,首先要編寫測試,因此如果要測試的系統(SUT)很難測試,則應立即清除。 這以易於測試的方式通知了SUT的設計。

這並不意味着您可以妥協封裝。 您仍應遵守良好的面向對象設計原則。

如果以這種方式進行,則測試中不應該存在的所有內容。 您可能有內部課程,但已通過其他公共課程的公共成員間接測試了它們。 切勿測試內部。 如果這樣做,則意味着要將測試與這些內部組件耦合在一起 ,這意味着它們也可能已經公開。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM