Тестирование отображений nHibernate - PullRequest
4 голосов
/ 05 мая 2009

Я только что начал новый проект, используя nHibernate и Fluent для отображения. Архитектор прислал мне базу данных, из которой я создал несколько сотен классов сущностей и соответствующие файлы сопоставления Fluent. Я знаю, что это не идеальный способ DDD, но жизнь редко бывает идеальной.

Что я хочу сделать, это проверить, что все сопоставления верны, столбцы сопоставлены правильно, OneToMany, ManyToMany и т. Д. Есть ли какой-нибудь автоматический или простой способ сделать это? Я рассмотрел просто написание простого репозитория, который загружает записи из каждой сущности и следит за тем, чтобы не возникало никаких исключений, но в большинстве таблиц еще нет данных.

Ответы [ 2 ]

5 голосов
/ 05 мая 2009

Посмотрите PersistenceSpecification в Fluent NHibernate. Это вряд ли идеально, но хорошо справляется со многими простыми случаями.

0 голосов
/ 05 мая 2009

Чтобы протестировать сопоставления ORM, я использовал одну стратегию, которая сэкономила часы работы, и включает в себя использование подхода с тестированием строк в модульных тестах, например атрибут RowTest в MBUnit или NUnit. Это избавит вас от написания отдельных модульных тестов для разных значений строк. для быстрого начала посмотрите эту веб-трансляцию.

Что касается базы данных, вы можете следовать 2 стратегиям: Если вам нужно протестировать конкретный экземпляр или механизм БД, вы можете использовать транзакции и убедиться, что все записи в БД откатаны после подтверждений. Если вы можете использовать свой собственный экземпляр и движок, вы можете использовать SQLLite или SQL CE в качестве БД только для модульного тестирования. Поскольку эта БД будет использоваться только в модульных тестах, вы всегда можете создать новую БД каждый раз, когда запускаете модульные тесты.

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