|
Тестирование Sql репозитория
|
|||
---|---|---|---|
#18+
Ребят, привет! Сейчас пишу проект, и вот дошел до тестирования Sql репозитория. Начал думать как его тестировать, и вспомнил, что я уже тестировал что-то подобное раннее в двух других проектах, нашел их, и посмотрел... Так вот, в одном проекте я тестировал так: Есть сущность Department(Отдел) - агрегат; И, например, Phone(телефон) - дочерняя сущность агрегата Department, телефоны хранятся в коллекции Department.Phones; Создаю репозиторий SqlDepartmentRepository; В базе данных есть две таблицы: Department и Phone; В тестовом проекте создаю следующие классы: DepartmentData и PhoneData, которые полностью совпадают со схемой таблиц Department и Phone; Допустим, тестирую метод Insert(Department department) класса SqlDepartmentRepository, следующим образом: создаю пустой объект Department, заполняю его фиктивными данными, и передаю методу Inserrt в качестве параметра; В тестовом методе Dapper'ом извлекаю данные из таблиц Department(одну запись) и Phone(коллекцию записей) в соответствующие объекты DepartmentData и PhoneData; И в конце делаю сравнение агрегата Department и с объектами данных DepartmentData и PhoneData; В другом проекте я тестировал намного проще, рассмотри тот же пример что выше: Допустим в репозитории SqlDepartmentRepository есть два метода Insert(Department department) и FindById(Guid idDepartment); Создаю фиктивную сущность Department, передаю методу Insert, а потом нахожу её методом FindById и сравниваю. Если объект, который вернул нам метод FindById, равен фиктивному объекту Department, то значит репозиторий правильно записывает и правильно считывает. Вот так я тестировал сразу два метода одновременно. Я не видел примеров где бы тестировались репозитории, и как их вообще надо тестировать(и надо ли вообще?). У меня нет в голове той информации, на которую я бы смог опираться при выборе решения. Что вы мне можете посоветовать? Как тестировать репозитории? Имеет ли право на жизнь приведенные выше два варианта? Может предложите свой? P.S. В реализации репозитория я не использую ORM типа EntityFramework и NH. Мне очень нравится Dapper, пользуюсь теперь только им. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2014, 05:43 |
|
|
start [/forum/topic.php?fid=36&gotonew=1&tid=1554650]: |
0ms |
get settings: |
15ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
42ms |
get topic data: |
6ms |
get first new msg: |
3ms |
get forum data: |
1ms |
get page messages: |
76ms |
get tp. blocked users: |
1ms |
others: | 304ms |
total: | 455ms |
0 / 0 |