[英]Testing private method of an abstract class using Reflection
如何使用反射(使用C#)測試抽象類的私有方法? 我對修改此線程中的代碼特別感興趣。
我知道圍繞測試私有代碼的原則進行的討論(一般來說不應該這樣!)。 由於各種原因,我已經決定針對我的情況進行此操作,因此,我們不再重復這些討論。 其他SO線程(例如Q#1583363和1506427)對其進行了詳細討論。 謝謝。
如果您使用的是VS2008,那么就像右鍵單擊您的私有方法並選擇創建單元測試一樣容易。 VS將創建一個YourAbstractClass_Accessor類,該類將允許您查看和運行該私有方法。
注意:無需其他模擬框架。
您可以執行此操作,盡管這不是反映,但可能會對某人有所幫助。
var concreteClass = new concreteClass();
var po = new PrivateObject(concreteClass, new PrivateType(typeof(AbstractClass)));
Object[] args = new object[] {...};
po.Invoke("PrivateMethod", args);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.