Должен ли я включить системные тесты в весеннем проекте?
-
14-11-2019 - |
Вопрос
Мой весенний веб-проект состоит из:
- классы UTIL;
- репозитории;
- услуги;
- контроллеры.
Тесты следующие:
- модульные тесты для классов Util;
- Весенние тесты интеграции для репозиториев с HSQLDB;
- Агрегатные тесты для услуг с помощью репозиториев Mock;
- Агрегатные тесты для контроллеров с Mock Services.
Также могут быть системные тесты, которые проверяют общую функциональность проекта. Он может быть выполнен с внешним инструментом, таким как Selenium или его можно проводить с помощью пружинного тестирования интеграции.
Вопрос в том, должен ли я включить такие системы системной интеграции в проекте или если они должны быть как-то разделены?
Я вижу две проблемы о включении системных испытаний в проекте: 1. Им нужна настройка конфигурации, потому что такие тесты не будут работать с производственным конфигом (например, тесты нуждаются в локальной источнике данных, а не один из JNDI); 2. Они не автономны, им нужны некоторые внешние ресурсы и так далее. Я не могу просто запустить их как обычные модульные тесты.
Как вы организуете тестирование вашей системы?
Решение
на небольших проектах, которые я держал их в том же месте. На крупных предприятиях проектов (вид, для которого вы можете использовать пружину пружины), мы обычно организовали системные тесты в отдельном пакете / проекте. Это помогает держать их отдельными от основной кодовой базы.
Если вы этого не сделаете, есть все виды искушения повторно использовать классы из кода, чтобы «помочь» в чем-то, что должно быть более решительно ориентировано на опыт пользователей системы (пользователь может быть другой системой ). Если это произойдет, вы заканчиваете связь между классами домена проекта и пользовательским интерфейсом, который будет иметь неизбежное влияние необходимости дублировать большую часть логики, которое помогает держать их отделения в реальной кодовой базе. Большую часть времени, когда логика в сценариях системных сценариев будет сосредоточена на страницах, экранах, веб-вызовах и т. Д., Итак, повторное использование кода из основного проекта - это красная сельдь. Сохраняйте пакеты, чтобы избежать этого происходящего, и потому, что, как только вы избегаете этого происходит, нет необходимости иметь их в том же месте.
Делайте, однако, убедитесь, что системные тесты проверяются в одном управлении версии, что и код.
Если вы еще не выполняете постоянную интеграцию и тестирование / развертывание, то это может быть другая область, для которой некоторое обучение поможет вам с файлами конфигурации. Эта проблема не уходит только потому, что у вас есть тесты в отдельном проекте, к сожалению.