我已经编写了我的自定义通用链表并想测试各种方法。例如我有包含方法
public bool Contains(T item)
{
lock (this)
{
Node<T> currentNode = firstNode;
while (currentNode != null)
{
if (currentNode.Item != null)
{
if (currentNode.Item.Equals(item))
{
return true;
}
}
currentNode = currentNode.Next;
}
return false;
}
}
我使用 MSTest 为此生成了一个单元测试,它生成了这个存根。我不确定我应该在 TODO 行放什么??
public void AddTestHelper<T>()
{
LinkedList<T> target = new LinkedList<T>(); // TODO: Initialize to an appropriate value
T item = default(T); // TODO: Initialize to an appropriate value
target.Add(item);
Assert.AreEqual(target.Contains(item), true);
}
[TestMethod()]
public void AddTest()
{
AddTestHelper<int>(); // my lines
AddTestHelper<object>(); //my lines
}
但是 AddTestHelper 或 AddTestHelper 失败,因为 default(T) 给出 null 其中 Contains() 方法返回 false 并且测试失败。
我是单元测试的新手,不知道如何测试这样的通用方法。有人可以告诉我在测试方法中需要什么更改,特别是在 TODO 行中吗?
谢谢