Как я могу модульное тестирование представления SQL с использованием SQLite - PullRequest
0 голосов
/ 23 декабря 2010

Я использую linq для nhibernate в своем проекте и пишу модульные тесты с использованием Mock и SQLLite.Объект домена сопоставлен с представлением sql с использованием беглого nhibernate.

Проблема заключается в том, что этот объект домена использует представление sql, имеет источник, и это представление имеет данные из многих таблиц, и это знает только MsSQL.Я не знаю, как это смоделировать.

Как выполнить модульное тестирование представления SQL, используя Mock и SQLite? * »» »» »» »» »» »» »» »»» »» »» »» »» »» »» »» »» »» »» »» »» »» »» »» »» »» »» »» »» »» »» »» »»»» »» »» »» »* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 10.} * *}}.Позвольте мне перефразировать его.

Я использую nhibernate, и пишу модульные тесты, используя SQLLite.В некоторых случаях мои доменные объекты сопоставляются с представлениями, а не с таблицами, и поэтому я настроил плавные отображения nhibernate таким образом, чтобы соответствующие таблицы не генерировались в схеме базы данных SQLite.

Это работает в среде разработки, посколькувпоследствии представления создаются вручную в базе данных MsSQL, но я не могу проверить соответствующие репозитории в модульных тестах, потому что они используют SQLite.

Как выполнить модульное тестирование представления SQL с использованием SQLite?

Ответы [ 2 ]

6 голосов
/ 23 декабря 2010

Я никогда не понимал людей, которые хотят проверить свой уровень персистентности и спросить, как его высмеивать. Какой смысл тестировать базу данных, если вы исключите ее из теста?

Если вы пытаетесь проверить базу данных, не издевайтесь над ней. Как только вы сделаете это для своего удовольствия и захотите перейти к сервисам, которые используют базу данных, я думаю, что уместно проверять базу данных (потому что вы уже проверили ее).

С учетом вышесказанного, при тестировании базы данных существуют особые соображения:

  1. Убедитесь, что у вас есть данные испытаний, которые вам нужны.
  2. Обеспечение безопасности реальных данных.
  3. Нахождение тестовой базы данных в одном и том же состоянии до и после запуска тестов.
0 голосов
/ 23 декабря 2010

Я нашел решение.

Я изменил отображения, так что при модульном тестировании он создает отображение для объекта домена, создавая таблицу в SQLite вместо представления.Благодаря этому я могу создавать репозитории этого объекта в среде тестирования.

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