Итак, мы с коллегой ведем довольно жаркие споры. Мы начинаем новый проект и пытаемся использовать BDD. Мы оба новички и не до конца понимаем, какие практики следует использовать. Мы написали некоторые спецификации и сейчас реализуем код. Все становится довольно сложно, так как существует много взаимодействий с базой данных. Мы застряли на том, как мы должны издеваться над нашими данными. Метод, о котором мы говорили, требовал, чтобы мы высмеивали наши методы вместо наших данных. Проще всего, если я покажу вам код ...
public static void AssignLeadToDistributor(int leadId, int distributorId)
{
Lead lead = GetById(leadId);
lead.DistributorId = distributorId;
Save(lead);
}
По сути, мы должны были бы переопределить GetById () и Save (), чтобы вернуть фиктивные данные, чтобы мы могли проверить это.
Кажется, имеет смысл сделать это так:
public static void AssignLeadToDistributor(Lead lead, Distributor distributor)
{
lead.DistributorId = distirbutor.Id;
}
Тогда мы могли бы просто высмеять наши объекты.
Очевидно, что второй метод облегчает тестирование. Однако аргумент заключается в том, что нам не нужно извлекать новый объект ведущего и распространителя из нашего кода переднего плана, потому что было бы проще просто передать идентификаторы наших объектов. Сокращение фактического кода в нашем интерфейсе.
Надеюсь, я объяснил это достаточно хорошо.
Что вы, ребята, думаете? Какой способ имеет больше смысла?