使用具有不同基类的相同TestClass

时间:2014-02-11 15:59:50

标签: c# unit-testing base-class test-class

我正在测试各种服务器,它们具有相同的型号,已经通过单元测试进行了测试。 现在我想测试真实的服务器(不仅仅是通用型号)。

在测试一般模型时,我创建了带有假适配器的虚假通用服务器,它们在基础测试类中定义,所有测试类都继承自它。这使得超过100次测试。

现在我需要使用相同的测试类,但需要使用各种基类(适用于各种真实服务器)。他们使用相同的测试数据并获得相同的结果。他们在一些内部方法上有所不同。

是否有可能以服务器数量的多次调用所有测试,每次使用不同的基本测试类(服务器类型和构造函数)?

示例:

[TestClass]
public class GeneralServerTests : BaseServer
{
    [TestMethod]
    public void IsAlive_ChecksInteraction_ReturnsTrue()
    {
        Assert.IsTrue(GeneralServer.Adapter.IsAlive());
    }
    ...
}

基础测试类

[TestClass]
public abstract class BaseServer
{
    protected Server GeneralServer;

    [TestInitialize]
    public void Setup()
    {
        //here I assign the Server constructor,
    }
}

所以我需要使用不同的服务器调用GeneralServerTests类。

希望你明白我的意思:)。

任何解决方案?

2 个答案:

答案 0 :(得分:0)

如果您使用&#34来解释继承,那么"概念,阅读句子:" GeneralServerTests IS 一个BaseServer",那似乎没有多大意义。所以我认为你的测试继承模型可能需要一些审查和重构。

现在,关于针对不同输入运行相同的测试,您应该进行数据驱动的测试:

http://msdn.microsoft.com/en-us/library/ms182527.aspx

您可以使用数据源指定有关目标服务器的信息,并配置测试代码。

答案 1 :(得分:0)

好的,我用

解决了

[DataSource(“Microsoft.VisualStudio.TestTools.DataSource.CSV”,| DataDirectory | \ ArchiveTestingData.csv“,”ArchiveTestingData#csv“,DataAccessMethod.Sequential)]

其中写有关于适配器的所有必要信息。

现在,所有测试的运行次数与文件中的适配器数一样多。