Нет правильного ответа на это, это действительно зависит.Некоторые люди (например, Рой Ошерове ) говорят, что вам следует тестировать только код, имеющий условную логику (операторы IF и т. Д.), Который может включать или не включать ваш DAL.Некоторые люди (часто те, кто занимается TDD) скажут, что вы должны протестировать все, в том числе DAL, и стремиться к 100% охвату кода.
Лично я проверяю его только при наличии логики, поэтому в итоге получим немного DALметоды проверены, а некоторые нет.В большинстве случаев вы просто проверяете, что ваш BL вызывает ваш DAL, что имеет свои достоинства, но я не нахожу нужным.Я думаю, что имеет больше смысла иметь интеграционные тесты, охватывающие комплексное приложение, включая базу данных, которая охватывает такие вещи, как GetUserById.
В любом случае, и вы, вероятно, уже знаете это, но убедитесь, что вашмодульные тесты не затрагивают реальную базу данных.(Это не проблема, но это интеграционный тест, а не модульный тест, поскольку он занимает гораздо больше времени и требует сложной настройки и должен выполняться отдельно).