从基类执行基类内的测试方法
本文关键字:基类 测试方法 执行 | 更新日期: 2023-09-27 18:30:29
是否可以从基类本身执行基类内部的测试方法?
我有一个声明为抽象的基类,里面有一个测试方法。我想在基类中执行这个测试方法。
当我这样做时。 测试用例显示"不可运行"
不能创建抽象类的实例。您很可能必须创建一个从基继承的空类,并从那里调用方法。
唯一的另一种选择,在我看来需要更多的工作,是使用支持这样做的模拟框架。例如:
http://ayende.com/wiki/Rhino+Mocks+Partial+Mocks.ashx?AspxAutoDetectCookieSupport=1
从基类派生测试中的类。在派生类中,创建一个调用基类的方法的方法。现在你可以实例化测试类了,我将做一个属性示例(只是为了让你工作并为方法做同样的事情,因为你还没有发布你的代码:)
//this could be created in your unit tests proj
public class MyBaseClassExtended : MyBaseClass
{
public MyBaseClassExtended () : base() { }
public new object SomeProperty { get { return base.SomeProperty; }
}
//now I can test
[Test]
public void Test()
{
var x= new MyBaseClassExtended ();
Assert.IsNotNull(x.SomeProperty);
当然,
你不能测试它,也不能让一个抽象类的实例。
如果你觉得你需要这样做,那么你应该重新考虑你的设计并相应地改变它。