В основном, я программировал в течение некоторого времени, и после окончания моего последнего проекта можно полностью понять, насколько проще было бы, если бы я сделал TDD. Я предполагаю, что я все еще не делаю этого строго, поскольку я все еще пишу код, а затем пишу тест для него, я не совсем понимаю, как тест проходит перед кодом, если вы не знаете, какие структуры и как хранятся данные и т.д.... но в любом случае...
Вид трудно объяснить, но в основном позволяет сказать, например, у меня есть объекты Fruit с такими свойствами, как id, цвет и стоимость. (Все сохраненные в текстовом файле полностью игнорируют любую логику базы данных и т.д.)
FruitID FruitName FruitColor FruitCost
1 Apple Red 1.2
2 Apple Green 1.4
3 Apple HalfHalf 1.5
Это все, к примеру. Но скажем, что у меня есть коллекция объектов Fruit
(it a List<Fruit>
) в этой структуре. И моя логика скажет, чтобы изменить порядок фруктов в коллекции, если фрукты удалены (именно так должно быть решение).
например. если 1 удаляется, объект 2 принимает значение id 1, объект 3 принимает значение id2.
Теперь я хочу протестировать написанный код ive, который выполняет переупорядочение, и т.д.
Как я могу настроить это для проведения теста?
Вот где я до сих пор. В основном у меня есть класс fruitManager со всеми методами, такими как deletefruit и т.д. Обычно он имеет список, но Ive изменил метод hte, чтобы проверить его, чтобы он принял список и информацию о фрукте для удаления, а затем возвращает список.
Тестирование модулей: Я в основном делаю это правильно, или у меня есть неправильная идея? и затем я проверяю удаление различных оцененных объектов/наборов данных, чтобы гарантировать, что метод работает правильно.
[Test]
public void DeleteFruit()
{
var fruitList = CreateFruitList();
var fm = new FruitManager();
var resultList = fm.DeleteFruitTest("Apple", 2, fruitList);
//Assert that fruitobject with x properties is not in list ? how
}
private static List<Fruit> CreateFruitList()
{
//Build test data
var f01 = new Fruit {Name = "Apple",Id = 1, etc...};
var f02 = new Fruit {Name = "Apple",Id = 2, etc...};
var f03 = new Fruit {Name = "Apple",Id = 3, etc...};
var fruitList = new List<Fruit> {f01, f02, f03};
return fruitList;
}