【问题标题】:NUnit testing generics with dataNUnit 使用数据测试泛型
【发布时间】:2012-08-30 23:31:01
【问题描述】:

我对测试类有以下定义。

[TestFixture(typeof(List<int>), typeof(int))]
[TestFixture(typeof(List<string>), typeof(string))]
public class SerializableListTests<TList, TValue> where TList : IList<TValue>, new()

我正在使用 NUnit 进行测试,并找到了使用上述代码为我正在测试我的泛型类的特定类型动态创建固定装置的示例。

我发现的问题是何时需要测试数据。例如。将项目添加到列表中。我不能让我的测试添加整数,因为字符串类型测试都会失败。例如。

public void Serializing_then_deserialize_returns_same_list()
{
     var xmlSerializer = new XmlSerializer(typeof(SerializableList<TList, TValue>));
     var xmlMemoryStream = new MemoryStream();

     var serializedList = new SerializableList<TList, TValue>();

     serializedList.List.Add(1);

     //Continue with deserialization and collection assert lists are equal.
}

有没有办法将测试中使用的数据链接到 TestFixture 使用的类型?

【问题讨论】:

    标签: generics nunit


    【解决方案1】:

    通过使用像 SerializableListTests&lt;TList, TValue&gt; 这样的抽象类并将我的其他特定于它们自己类型的测试装置子类化,我有一些不错的运气。在那里,您可以让基类 testfixture 进行添加,因为它是强类型的。

    【讨论】:

    • 这不是意味着重写每个子类中的测试吗?我可以使用您的想法返回我要测试的数据的子类。这意味着测试将被编写一次并针对不同的类型/数据进行测试。
    • 我认为这是一个很好的方法,或多或少是我想说的,但我的措辞不是很清楚。
    猜你喜欢
    • 2011-01-22
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 2011-12-19
    • 2012-11-05
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    相关资源
    最近更新 更多