2

В типичной архитектуры приложения 3 слоя, есть:Модульное тестирование уровня доступа к данным в архитектуре 3-слойной

  • Business Logic Layer
  • Data Access Layer
  • хранения данных уровня

Я думаю о тестировании DAL (особенно с Entity Framework) без использования реальной БД. Но довольно сложно имитировать сложные ограничения внешнего ключа в БД. А также многое другое.

Теперь я думаю, что это правильный способ для Unit Test DAL? Или какой слой больше всего подходит для Unit Testing?

Я вижу некоторые статьи trying to mock the DbContext in the Entity Framework. С таким подходом сложно моделировать отношения с внешним ключом. Мне интересно, если это в правильном месте для шва. Можем ли мы издеваться над чем-то еще? Например, насмехаясь над слоем ADO.NET? т. Е. БД-память в памяти для ADO.NET для использования.

Mocking somewhere else

ответ

2

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

Btw .: типичная архитектура 3-слойный является:

  1. Presentation слой
  2. слой бизнес-логики
  3. Настойчивость слой (часть из которых является система хранения данных - в основном база данных)
3

Ответ Томаса является хорошим способом протестировать ваш уровень доступа к данным. Но это не дает возможности заменить его.

Более разумный подход к трехслойной архитектуре заключается в том, чтобы не допустить, чтобы уровень бизнес-логики напрямую разговаривал с классами на уровне доступа к данным. Эта межуровневая связь должна осуществляться через интерфейс, который вы определяете. Уровень доступа к данным может знать уровень бизнес-логики, но уровень бизнес-логики должен знать только о интерфейсе доступа к данным и не заботится о том, как реализован этот интерфейс.

Затем вы можете заменить реальный доступ к данным с помощью поддельного доступа к данным. См. Разговор дяди Боба Architecture: The Lost Years.

+0

Согласен. Это путь, если вы действительно хотите «высмеять» DAL. –

Смежные вопросы