C#, nUnit и Rhino Mocks, если это окажется применимым.TDD и DI: инъекции зависимостей становятся громоздкими
Мои поиски с TDD продолжаются, когда я пытаюсь обернуть тесты вокруг сложной функции. Предположим, что я кодирую форму, которая при сохранении должна также сохранять зависимые объекты в форме ... ответы на вопросы формы, вложения, если они доступны, и записи «log» (например, «блаббл обновил форму» или «Блаблах приложил файл».). Эта функция сохранения также отключает электронные письма для разных людей в зависимости от того, как изменилось состояние формы во время сохранения функции.
Это означает, что для полной проверки функции сохранения формы со всеми ее зависимостями я должен ввести пять или шесть поставщиков данных, чтобы проверить эту функцию и убедиться, что все сделано правильно и правильно. Это громоздко при написании многоцепочечных конструкторов для объекта формы для вставки издевающихся провайдеров. Я думаю, что я что-то упустил, будь то рефакторинг или просто лучший способ установить посмеянных поставщиков данных.
Должен ли я дополнительно изучить методы рефакторинга, чтобы увидеть, как эту функцию можно упростить? Как выглядит шаблон наблюдателя, так что зависимые объекты обнаруживают, когда родительская форма сохраняется и обрабатывается? Я знаю, что люди говорят, что нужно разделить функцию, чтобы она могла быть проверена ... что я проверяю индивидуальные функции сохранения каждого зависимого объекта, но не функцию сохранения самой формы, которая диктует, как каждый должен спасти себя в первое место?
Это помогло бы предположить улучшения, если бы вы показать код. –