2012-06-08 2 views
0

Я не уверен, что я все еще получаю, как «единица» тест унаследованного кода, такие как это ...насмешливый окурок глубоко наследство объекты

Большая часть моего кода, чтобы положить вещи и удалить вещи из объекта класса А который имеет ряд других объектов внутри него и так далее, как дерево. На листе этого дерева находится объект элемента данных, поддерживаемый строкой базы данных OR ... Создание реального объекта класса A является нетривиальной задачей, поскольку оно включает в себя создание всех узлов этого дерева. Я даже не иметь видимость на классы за один уровень внутри А.

Мои потребности кода осуществляется при classAobj это состояние X и этот код будет двигаться classAobj заявить Y

Что бы быть лучшим способом, чтобы получить classAobj в состояние X?

Я слышал, что объекты Mock и объекты-заглушки поддерживались, но не были уверены в том, как я буду обращаться с чем-либо с глубокими ожиданиями и как я могу создать заглушку, когда мне нужно все дерево?

Как вы узнаете, какие другие объекты необходимы для функции classAobj?

+0

Пожалуйста, улучшите свой вопрос, разместив только соответствующие разделы вашего кода, [правильно отформатированные] (http://stackoverflow.com/editing-help). Кроме того, отправляйте любое сообщение об ошибке, которое вы получили, и какие шаги вы предприняли до сих пор для исследования или решения проблемы с программированием. –

ответ

0

Добавление модульных тестов к устаревшему коду, не предназначенному для модульного тестирования, очень сложно, и вы можете в конечном итоге написать тесты, которые на самом деле просто хотят развалиться через некоторое время после реорганизации всего дерева объектов.

Я бы посмотрел на интеграционные тесты, так как это даст вам больше свободы для рефакторинга, но при большой стоимости настройки.

Смежные вопросы