从基类执行基类内部的测试方法

时间:2013-09-06 13:47:45

标签: c# .net

是否可以从基类本身执行基类内部的测试方法?

我有一个基类,它被声明为抽象,并且在其中有一个测试方法。我想在基类中执行这个测试方法。

我这样做的时候。测试用例显示“Not runnable”

3 个答案:

答案 0 :(得分:2)

您无法创建抽象类的实例。您很可能必须创建一个从基类继承的空类,并从那里调用方法。

唯一的另一种选择,对我而言似乎需要做更多的工作,就是使用支持这样做的模拟框架。例如:

http://ayende.com/wiki/Rhino+Mocks+Partial+Mocks.ashx?AspxAutoDetectCookieSupport=1

答案 1 :(得分:1)

当然你无法测试它,你不能拥有一个抽象类的实例。

如果您觉得需要这样做,那么您应该重新考虑您的设计并相应地进行更改。

答案 2 :(得分: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);