Запись тестовых данных в Hibernate - PullRequest
2 голосов
/ 18 февраля 2009

У меня есть автоматизированная среда тестирования для тестирования аппаратных виджетов. Прямо сейчас только результаты испытаний / прохождения теста сохраняются в реляционной базе данных с использованием hibernate. Я хотел бы изменить это так, чтобы различные характеристики теста сохранялись в базе данных. (например, сколько песчанок работает внутри виджета, входные данные для различных утверждений в тестах и ​​т. д.).

Каждый тестовый пример представлен как класс Java, поэтому первым делом я подумал о том, чтобы использовать hibernate, чтобы просто создать таблицу для каждого тестового случая. Тем не менее, у нас есть много-много тестов, поэтому я не думаю, что иметь таблицу для каждого теста обязательно лучшая идея.

Количество и тип данных для конкретных тестовых случаев не будут меняться при разных выполнениях тестового примера, но данные, необходимые для каждого тестового примера, будут существенно отличаться. Чтобы использовать глупый пример: для теста на грызущих песчанок мы всегда хотим записать возраст и цвет песчанок, грызущих на проводах, но для теста на удар нам нужно только записать, сколько камней было брошено в виджет. *

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

Есть идеи, как структурировать базу данных для удовлетворения этих требований? Я совершенно не в себе и не хочу большого количества столов?

Ответы [ 2 ]

2 голосов
/ 19 февраля 2009

Я бы сказал, что у вас есть два основных варианта:

Сделайте ваши классы TestCase надклассами общего суперкласса, а затем используйте одну из стратегий отображения наследования (http://hibernate.org/hib_docs/reference/en/html/inheritance.html)). Не беспокойтесь о количестве таблиц / столбцов, но вы должны убедиться, что вы это делаете не достиг предела вашего движка базы данных.

Или вы делаете EAV модель (http://en.wikipedia.org/wiki/Entity-Attribute-Value_model) Он чрезвычайно гибкий, но имейте в виду, что он вызывает чрезвычайно сложные запросы для простых вопросов.

Убедитесь, что вы выполняете тесты с реалистичными томами, прежде чем переходить к одному или другому.

0 голосов
/ 18 февраля 2009

Я бы не стал беспокоиться о множестве таблиц. Если это правильная схема, значит, так оно и есть. БД предназначены для обработки.

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