Управление тестовыми данными для тестов Junit - PullRequest
5 голосов
/ 10 июня 2010

Мы столкнулись с одной проблемой при управлении тестовыми данными (xmls, который используется для создания фиктивных объектов). Данные, которыми мы располагаем в настоящее время, развивались в течение длительного периода времени. Каждый раз, когда мы добавляем новую функциональность или тестовый пример, мы добавляем новые данные для проверки этой функциональности. Теперь проблема заключается в том, что, когда бизнес-требования изменяют формат (например, длину или формат переменной) или любое изменение, которое не поддерживаются тестовыми данными, нам необходимо изменить все тестовые данные, размер которых составляет 100 МБ. Может ли кто-нибудь предложить лучший метод или процесс для преодоления этой проблемы? Любое предложение будет оценено.

Ответы [ 2 ]

8 голосов
/ 10 июня 2010

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

Это имеет два основных преимущества:

  1. Это делаеттесты намного легче читать, поскольку разработчик может точно видеть, какие объекты используются, и
  2. Это должно значительно сократить объем тестовых данных, которыми вы должны управлять.

Зарезервируйте тестовые данные для таких вещей, как функциональные и интеграционные тесты, и используйте инструмент, такой как DBDeploy, для управления этими данными.Эти данные должны быть преднамеренно небольшими.Использование DBDeploy и DBUnit позволяет очищать базу данных перед каждым тестом или набором тестов.Это также должно ограничивать объем данных, которые вам нужны, поскольку это значительно увеличивает повторное использование данных.

3 голосов
/ 10 июня 2010

Хотя это не полное решение вашей проблемы, но определенно поможет (особенно в вашем случае, поскольку у вас есть 100 МБ данных) - пишите тесты на основе проверки поведения вместо проверка данных .

У Мартина Фаулера есть очень хорошая статья здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...