通用类/方法的单元测试方法

Gre*_*reg 11 .net c# generics unit-testing

什么是覆盖泛型类/方法的单元测试的推荐方法?

例如(参考下面的示例代码).是否有2到3次测试来覆盖使用几种不同类型的TKey,TNode类测试方法?或者只是一个班级?

public class TopologyBase<TKey, TNode, TRelationship> 
    where TNode : NodeBase<TKey>, new() 
    where TRelationship : RelationshipBase<TKey>, new()

{
    // Properties
    public Dictionary<TKey, NodeBase<TKey>> Nodes { get; private set; }
    public List<RelationshipBase<TKey>> Relationships { get; private set; }

    // Constructors
    protected TopologyBase()
    {
        Nodes = new Dictionary<TKey, NodeBase<TKey>>();
        Relationships = new List<RelationshipBase<TKey>>();
    }

    // Methods
    public TNode CreateNode(TKey key)
    {
        var node = new TNode {Key = key};
        Nodes.Add(node.Key, node);
        return node;
    }

    public void CreateRelationship(NodeBase<TKey> parent, NodeBase<TKey> child) {
    .
    .
    .
Run Code Online (Sandbox Code Playgroud)

ema*_*ema 5

我通常创建一个 DummyClass 用于测试目的,作为通用参数传递(在您的情况下,您应该创建 3 个类),并且我测试该类(TopologyBase)一次。

使用不同的泛型类型进行测试没有意义,因为泛型类型不应破坏 ToopologyBase 类。