1

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

在测试通用模型时,我使用假适配器创建了假通用服务器,这些适配器在基本测试类中定义,所有测试类都继承自它。这进行了一百多个测试。

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

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

例子:

[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 类。

希望你明白我的意思:)

任何解决方案?

4

2 回答 2

0

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

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

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

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

于 2014-02-11T18:46:46.500 回答
0

好的,我用它解决了

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

关于适配器的所有需要​​的信息都写在这里。

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

于 2014-02-13T08:57:05.517 回答