[英]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.