Я большой энтузиаст TDD и всегда стараюсь писать тесты, прежде чем писать производственный код, чтобы гарантировать правильное поведение кода, который я пишу. Однако иногда возникает вопрос, целесообразно ли писать большое количество тестов для определенных видов методов. Это чаще всего встречается при написании класса картографа.
public class FooBarMapper
{
public Foo MapToFoo(Bar bar)
{
return new Foo
{
Id = bar.Id,
Name = bar.Name,
FooYuk = bar.Beverage,
/* ... */
};
}
}
Скажем, например, что существует около дюжины свойств для сопоставления с вышеупомянутыми. В среде TDD, прежде чем писать какие-либо сопоставления, я бы, вероятно, написал тест. Что-то вроде MapToFooMapsBeverageToFooYuk()
. Тест не пройден, что привело меня к написанию кода для его прохождения. Я повторяю это для каждого свойства на карте. Вопрос в том, слишком ли далеко заходит разработка, основанная на тестах? Лично я так не думаю, так как предпочел бы полный набор тестов, рассказывающих мне точно, что делает код, но я хотел бы услышать, что думает сообщество.