Для Enity Framework 4 это выглядит многообещающе: Testability and Entity Framework 4.0
По-видимому, это очень твердо. Красноречиво помещенный Erik здесь - TDD и Платформа Объекта ADO.NET
Вы собираетесь хотеть использовать Платформу Насмешки для получения ложных значений вместо того, чтобы поразить реальные данные. Вот список нескольких платформ насмешки и ссылки на некоторые экранные демонстрации, чтобы помочь Вам начать:
Здесь является некоторыми экранными демонстрациями о том, как начать:
Я соглашаюсь, платформа насмешки - то, что Вы после. Вы создаете "дразнившие" объекты, которые не получены от Вашего источника данных, и Вы тестируете данные в том объекте. Я лично работал с Moq, и мне нравится он - существует также Rhinomocks плюс другие.
Как насчет того, чтобы использовать платформу насмешки? Мне кажется, что платформа насмешки может помочь Вам isolaye Ваша бизнес-логика от базы данных.
Хотя примеры могут быть очень упрощенными, я попытался обсудить возможное решение этой самой проблемы. Это включает в себя разделение задач и нашего дорогого друга Dependency Injection.
Свяжитесь со мной, если вы хотите получить более подробную информацию.
I would like to share another input to this. I was able to test Entity Framework based components and application using TypeMock Isolator as well. However it is commercial.
Have a look at this post: Introducing Entity Framework Unit Testing with TypeMock Isolator
Из-за того, что версия 1 структуры объекта разбивает несколько основных принципов проектирования программного обеспечения, Там действительно нет никакого способа применить TDD при использовании его в вашем приложении. Мои исследования указывают на Nibernate, если вы ищете немедленное решение. Он был разработан с учетом единицы тестирования.
Однако, если вы можете подождать, появляется надежда на следующий выпуск структуры объекта: Прохождение по развитию для тестирования с объектом Framework 4.0
Пример приложения BookLibrary проекта WPF Application Framework (WAF) показывает, как приложение на основе Entity Framework может быть модульно протестировано.