Должен ли я включить системные тесты в весеннем проекте?

StackOverflow https://stackoverflow.com/questions/5015189

  •  14-11-2019
  •  | 
  •  

Вопрос

Мой весенний веб-проект состоит из:

  1. классы UTIL;
  2. репозитории;
  3. услуги;
  4. контроллеры.

    Тесты следующие:

    1. модульные тесты для классов Util;
    2. Весенние тесты интеграции для репозиториев с HSQLDB;
    3. Агрегатные тесты для услуг с помощью репозиториев Mock;
    4. Агрегатные тесты для контроллеров с Mock Services.

      Также могут быть системные тесты, которые проверяют общую функциональность проекта. Он может быть выполнен с внешним инструментом, таким как Selenium или его можно проводить с помощью пружинного тестирования интеграции.

      Вопрос в том, должен ли я включить такие системы системной интеграции в проекте или если они должны быть как-то разделены?

      Я вижу две проблемы о включении системных испытаний в проекте: 1. Им нужна настройка конфигурации, потому что такие тесты не будут работать с производственным конфигом (например, тесты нуждаются в локальной источнике данных, а не один из JNDI); 2. Они не автономны, им нужны некоторые внешние ресурсы и так далее. Я не могу просто запустить их как обычные модульные тесты.

      Как вы организуете тестирование вашей системы?

Это было полезно?

Решение

на небольших проектах, которые я держал их в том же месте. На крупных предприятиях проектов (вид, для которого вы можете использовать пружину пружины), мы обычно организовали системные тесты в отдельном пакете / проекте. Это помогает держать их отдельными от основной кодовой базы.

Если вы этого не сделаете, есть все виды искушения повторно использовать классы из кода, чтобы «помочь» в чем-то, что должно быть более решительно ориентировано на опыт пользователей системы (пользователь может быть другой системой ). Если это произойдет, вы заканчиваете связь между классами домена проекта и пользовательским интерфейсом, который будет иметь неизбежное влияние необходимости дублировать большую часть логики, которое помогает держать их отделения в реальной кодовой базе. Большую часть времени, когда логика в сценариях системных сценариев будет сосредоточена на страницах, экранах, веб-вызовах и т. Д., Итак, повторное использование кода из основного проекта - это красная сельдь. Сохраняйте пакеты, чтобы избежать этого происходящего, и потому, что, как только вы избегаете этого происходит, нет необходимости иметь их в том же месте.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top