Как я разрабатываю модульные тесты на несколько модулей Perl в том же распределении?

Я разрабатывал внутреннюю платформу, которая разработана с набором модулей Perl. Все эти модули зависят от единственного модуля, который выставляет некоторую функциональность Win32. Для, например, A, B, C, D, и т.д. модули все зависят от единственного модуля Z. Таким образом, все эти модули импортируют "использованием MyFramework:: Z". Все эти модули A, B, C и т.д. могут использоваться индивидуально и arenot зависящий от любых других модулей платформы.

Теперь, с тем простым дизайном в памяти - как я разрабатываю свои модульные тесты. Я планирую использовать Тест:: Больше сделать все модульные тесты. Я должен записать отдельные модульные тесты на каждый модуль? Существует 25 различных модулей, которые принадлежат этой платформе. Какие-либо предложения?

5
задан brian d foy 4 February 2010 в 23:43
поделиться

3 ответа

Модульные тесты для Z должны охватывать функциональность Win32.

Модульные тесты для A должны охватывать функциональные возможности A , не описанные в Z . Повторите для B , C , D и так далее.

Если вы обнаружите, что C , E и G делают похожие вещи, и вы пишете почти идентичные модульные тесты, это сигнал к рефакторингу - извлеките общие компоненты до более высокого уровня (например, модуль CEG ) и просто оставьте и протестируйте специальные части C , E и ] G в исходных модулях.

6
ответ дан 14 December 2019 в 01:07
поделиться

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

Если вы думаете, что важно иметь возможность проверить свой код, независимый от среды Win32, создайте код модуля (специально для тестов), которые эмулируют интерфейс модуля Win32. А Пакет Заявление наряду с некоторыми затянутыми функциями может сделать трюк, в зависимости от того, что на самом деле делает реальный модуль.

2
ответ дан 14 December 2019 в 01:07
поделиться

Есть несколько вещей, которые вы можете сделать:

  1. Начните их писать! ;)
  2. По одному тесту на модуль (как вы и предлагали) и попробуйте проверить "только" тестируемый вами код. (Звучит очевидно, но легко начать думать о взаимодействии с другими модулями)
  3. Проверьте модульные тесты на CPAN на примерах
  4. Читайте о BDD и TDD
1
ответ дан 14 December 2019 в 01:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: