Будучи новичком в разработке на основе тестирования, этот вопрос меня беспокоил. Сколько это слишком много? Что должно быть проверено, как это должно быть проверено, и почему это должно быть проверено? Примеры приведены в C # с NUnit, но я предполагаю, что сам вопрос не зависит от языка.
Вот два моих текущих примера тестов на объекте общего списка (при тестировании со строками функция инициализации добавляет три элемента {"Foo", "Bar", "Baz"}
):
[Test]
public void CountChanging()
{
Assert.That(_list.Count, Is.EqualTo(3));
_list.Add("Qux");
Assert.That(_list.Count, Is.EqualTo(4));
_list[7] = "Quuuux";
Assert.That(_list.Count, Is.EqualTo(8));
_list.Remove("Quuuux");
Assert.That(_list.Count, Is.EqualTo(7));
}
[Test]
public void ContainsItem()
{
Assert.That(_list.Contains("Qux"), Is.EqualTo(false));
_list.Add("Qux");
Assert.That(_list.Contains("Qux"), Is.EqualTo(true));
_list.Remove("Qux");
Assert.That(_list.Contains("Qux"), Is.EqualTo(false));
}
Код довольно комментирует себя, поэтому я не буду вдаваться в подробности, но разве такого рода вещи зашли слишком далеко? Add()
и Remove()
, конечно, тестируются отдельно, так какой уровень я должен пройти с такого рода тестами? Должен ли я даже иметь такие тесты?