Не думаю, что вы должны проходить юнит-тестирование на этом уровне. Я готов к юнит-тестам, но есть определенный момент, когда вам нужно остановиться.
Допустим, что код является частью ClientsLinqRepository, который, в свою очередь, реализует IClientsLinqRepository. Вы издеваетесь над IClientsLinqRepository, когда реализуете код, который от него зависит.
Несмотря на то, что вышеизложенное совершенно верно, ClientsLinqRepository является интеграционной реализацией. Почти так же, как если бы у вас был IMessageSender и вы реализовали MailSender. Здесь у вас есть код, основной задачей которого является интеграция с отдельной системой, для вас это база данных.
Исходя из вышеизложенного, я предлагаю вам провести целевые интеграционные тесты для этого класса. Таким образом, в этом случае вы хотите подключиться к внешней системе (базе данных) и убедиться, что код интеграции правильно работает с внешней системой. Это позволит вам быстро определить, не нарушено ли что-либо в коде по сравнению с базой данных, не имея дело со сложностью остальной системы (что является проблемой при попытке выполнить интеграционные тесты на других уровнях).
Держите сфокусированные интеграционные тесты отдельно от модульных тестов, чтобы вы могли запускать удивительно быстрые модульные тесты столько раз, сколько вы хотите, и запускать интеграционные тесты, когда вносятся изменения в любой из компонентов интеграции, время от времени