Модульное тестирование сильно взаимозависимого кода - PullRequest
2 голосов
/ 03 октября 2011

Итак, у меня есть сложный код, который я хотел бы изменить.Проблема в том, что это зависит от запросов к базе данных, EJB и Java serverFaces.Не одновременно, но близко к нему.

Хорошим примером будет геокодер .Получение значимых результатов в зависимости от нескольких запросов к БД в зависимости от введенных и сохраненных данных.Код также может ссылаться на другие вспомогательные классы и искать их через инфраструктуру JSF.

Каковы наилучшие стратегии для тестирования такого рода кода?Должен ли я постараться максимально выделить свой код?Должен ли я использовать вместо насмешки?Что сработало для других людей?

1 Ответ

4 голосов
/ 03 октября 2011

Ну, краткий ответ - «да».

Вам понадобится, прежде всего, достаточно разложить код по размеру, чтобы вообще построить модульные тесты.То, что вы описываете, чрезмерно сложно применять обычные методы модульного тестирования, и то, что вы получите в любом случае, больше похоже на приемочный тест более высокого уровня.

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

  1. Проверьте сами запросы к базе данных, используя внешний скрипт.

  2. Построитьподходящий макет для компонентов, непосредственно обращающихся к БД, чтобы увидеть, что происходит с известными результатами.

  3. Создание модульных тестов с использованием JUnit-подобной среды для модулей функциональности.

  4. Изучите современное состояние, чтобы убедиться, что вы можете с пользой проверить выходной HTML на соответствие модульным тестам.

...