Я только начал работать с TDD и очень быстро столкнулся с кирпичной стеной. Вот мой сценарий ...
Я пытаюсь смоделировать объект Image, и, пройдя этапы TDD, я начал с простого объекта, который в конечном итоге превратился в ...
public class ImageObject
{
public string Name {get; set;}
public int Width {get; set;}
public int Height {get; set;}
public bool IsValid()
{
//Some rules
}
}
Конечно, обязательные тесты ...
[Test]
public void ImageWidthCannotBeLessThanZero {...}
[Test]
public void ImageHeightCannotBeLessThanZero {...}
and so forth...
Пока все хорошо. Далее я хочу как-то представить физический файл в классе. Это может быть путь к файлу
public class ImageObject
{
public string Path {get; set;}
}
или серия байтов
public class ImageObject
{
public byte[] Bytes {get; set;}
}
(Пожалуйста, это не аргумент о БД и Файловой системе для хранения.)
На данный момент я не чувствую себя комфортно, потому что мое сознание дрейфует и начинает думать об инфраструктуре / деталях реализации.
Где мой недостаток ?? Должен ли я заранее принять решение о деталях реализации? Нужен ли мне умный шаблон дизайна, чтобы справиться с этим? Помогут ли насмешливые рамки? Это проблема анализа объектов / проектирования, и я должен использовать инструменты UML? (Подожди, я подумал, что TDD был о дизайне?)
В любом случае, как мне преодолеть эту проблему? Я хочу сосредоточиться на проектировании своих объектов и не думать об инфраструктурных проблемах в это время?