什么是推荐的方法来掩盖通用类/方法的单元测试?
例如(参考下面我的示例代码).是否有两到三倍的测试来覆盖使用几种不同类型的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) {
- .
- .
- .
解决方法
我通常创建一个DummyClass作为测试目的,作为通用参数传递(在你的情况下你应该创建3类),我测试一个类(TopologyBase)一次.
使用不同的通用类型进行测试是没有意义的,因为通用类型不应该破坏ToopologyBase类.