簡體   English   中英

單元測試,構建配置和內部

[英]Unit Tests, Build Configuration and Internals

我將我的UnitTests寫在與被測項目不同的項目中。 為了能夠測試Internal類/成員,我在被測項目中使用了[InternalsVisibleTo]屬性。

#if "BUILD_CONFIGURATION"
[assembly: InternalsVisibleTo("Tests_ProjectUnderTest")]
#endif

出現以下問題:

我應該使用哪種構建配置進行單元測試? Internal不應在我發布的代碼中可見,因此#if RELEASE是不可能的。 另一方面,如果#if DEBUG並未真正測試我要發布的內容。 您是否應該具有獨特的UNIT_TEST配置? 或您會怎么做?

我通常不將[InternalsVisibleTo()]屬性作為條件,因為僅使命名的程序集可見內部結構。 您可以通過強命名這些程序集來增強其安全性,因此沒有人可以“偽造”您的單元測試程序集。 但是,如果您對此感到擔心,則可能無論如何都應該混淆您的程序集,否則逆向工程就變得微不足道了。 我通常認為私有/內部是意圖的陳述,而不是安全性,因為總可以通過反射來規避它。

我通常對調試配置進行單元測試,因為我想在單元測試結果中查看診斷輸出。 這可能取決於您使用的運行程序,我使用的是ReSharper運行程序,它會將調試/跟蹤輸出捕獲到單元測試窗口中。 由於在我的發行版本中減少了跟蹤詳細程度,因此我更喜歡對調試版本進行單元測試。 我認為這是一個判斷電話。

暫無
暫無

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

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