Я разрабатывал внутреннюю платформу, которая разработана с набором модулей Perl. Все эти модули зависят от единственного модуля, который выставляет некоторую функциональность Win32. Для, например, A, B, C, D, и т.д. модули все зависят от единственного модуля Z. Таким образом, все эти модули импортируют "использованием MyFramework:: Z". Все эти модули A, B, C и т.д. могут использоваться индивидуально и arenot зависящий от любых других модулей платформы.
Теперь, с тем простым дизайном в памяти - как я разрабатываю свои модульные тесты. Я планирую использовать Тест:: Больше сделать все модульные тесты. Я должен записать отдельные модульные тесты на каждый модуль? Существует 25 различных модулей, которые принадлежат этой платформе. Какие-либо предложения?
Модульные тесты для Z
должны охватывать функциональность Win32.
Модульные тесты для A
должны охватывать функциональные возможности A
, не описанные в Z
.
Повторите для B
, C
, D
и так далее.
Если вы обнаружите, что C
, E
и G
делают похожие вещи, и вы пишете почти идентичные модульные тесты, это сигнал к рефакторингу - извлеките общие компоненты до более высокого уровня (например, модуль CEG
) и просто оставьте и протестируйте специальные части C
, E
и ] G
в исходных модулях.
В целом я бы начал с реализации тестов на низкоуровневую функциональность и сохранить тесты для модулей, которые предназначены для того, чтобы быть независимыми друг от друга в отдельных файлах.
Если вы думаете, что важно иметь возможность проверить свой код, независимый от среды Win32, создайте код модуля (специально для тестов), которые эмулируют интерфейс модуля Win32. А Пакет
Заявление наряду с некоторыми затянутыми функциями может сделать трюк, в зависимости от того, что на самом деле делает реальный модуль.