Мне не удалось придумать удобное решение для моделирования для модульного тестирования с Linq to SQL, поэтому я пошел другим путем.
Я создал тестовую базу данных с известными значениями в ней для проверки. Затем, поскольку вы не хотите, чтобы ваши тесты изменяли содержимое ваших данных, я использовал расширение XtUnit для NUnit:
http://weblogs.asp.net/rosherove/archive/2004/10/05/238201.aspx
Это расширение волшебным образом отменяет любые изменения, которые ваш тест вносит в базу данных после его завершения.
Я не буду лгать, это решение довольно уродливо. Тем не менее, это также не требует от вас придумывать причудливую концепцию насмешек. После того, как вы установили свои тестовые данные, очень легко написать свои тесты. Все ваши тесты должны убедиться, что ваш класс наследует от ExtensibleFixture, и пометить ваши тесты атрибутом [DataRollBack], а XtUnit сделает все остальное.