Я написал свой собственный общий связанный список и хотел протестировать различные методы. Например, у меня есть метод Contains
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 терпит неудачу, поскольку по умолчанию (T) дает значение null, для которого метод Contains() возвращает false, а тест завершается неудачно.
Я новичок в модульном тестировании и не знаю, как протестировать такой общий метод. Может ли кто-нибудь сказать мне, какие изменения требуются в методе тестирования, особенно в строках TODO ??
Спасибо