TDD с Entity, издевательство над сгенерированными классами Entity?

Приношу свои извинения, я прочитал этот пост:

TDD и ADO.NET Entity Framework

Но я не думаю, что это касается того, что я ищу, и другие подобные вопросы кажутся без ответа. Так что простите меня, если на это уже был дан ответ.

У меня есть приложение, которое я пишу. Я создал несколько классов Entity. Я хочу поиздеваться над этим во время модульного тестирования, так как считаю, что реализация MS достаточно хороша, чтобы можно было пропустить ее тестирование. знак равно

Итак, моя первая догадка:

Возьмите сгенерированный класс, производящий ObjectContext, и сгенерируйте из него интерфейс для свойств чтения, которые возвращают ObjectQuery и методы Add (на этом этапе я не беспокоюсь об обновлении существующих объектов, а просто читаю). Однако во время тестирования я быстро столкнулся с проблемами, так как мне не удавалось легко заставить свойства ObjectQuery работать нормально.

Я видел сообщение The Wayward Weblog о том, чтобы сделать что-то похожее на это, но с Linq to SQL, и просто напрашивается вопрос: разве никто не придумал лучший способ издеваться над фреймворком Entity, чем этот ?!

Спасибо!


person Matthew Bonig    schedule 16.02.2009    source источник


Ответы (2)


Дождитесь EF v2.0 (год может больше) или переключитесь на NHibernate. Я выбрал второй вариант (непростой, но с полной поддержкой TDD и без ограничений по базе данных).

person twk    schedule 04.03.2009
comment
Фактически, я согласен, сейчас я использую Fluent NHibernate и вполне доволен им по сравнению с EF. Жаль, что обычно проще продавать клиентам технику MS, а не ОС. - person Matthew Bonig; 10.03.2009
comment
Некоторые люди всегда будут фанатами M $. Просто напомните им, что большинство веб-серверов являются OpenSource. ИМХО, технология ОС - определенно путь вперед. Большой плюс OpenSource в том, что я могу пройтись по коду, если он когда-либо потенциально вызовет проблему. Я всегда сомневаюсь или полагаюсь на (иногда ложную) документацию с M $, плюс они любят изменять API, как если бы предыдущая версия никогда не существовала. К счастью, сейчас существует множество замечательных проектов для ОС .net. nHibernate - один из них. - person gef; 04.08.2009

Так что я так понимаю, что на это нет ответа. К сожалению, после большого количества поисковых запросов я не думаю, что EF действительно поддерживает подход TDD к разработке, что является абсолютным позором. Похоже, пора принять nHibernate.

person Matthew Bonig    schedule 25.02.2009
comment
Я проголосовал за этот ответ, потому что есть способы применить TDD с EF. См. Мой ответ ниже (stackoverflow.com/a/23598940/3481183). - person Believe2014; 12.05.2014
comment
Спасибо за ответ, который 5 лет назад спросили о другой версии EF. - person Matthew Bonig; 22.05.2014
comment
К сожалению, он все еще активен в Stack Overflow, и я много лет выполнял TDD с EF. - person Believe2014; 22.05.2014
comment
эй, это твоя репутация, меня устраивает. Я давно отказался от EF в пользу более совершенных решений. знак равно - person Matthew Bonig; 22.05.2014
comment
Вы имели в виду NHibernate? - person Believe2014; 22.05.2014
comment
Да, я думаю, что NH лучше, но также в значительной степени перешел на решения NoSQL. - person Matthew Bonig; 22.05.2014
comment
Вы так очаровательны и счастливы, что имеете такую ​​роскошь, что выбираете технарей. - person Believe2014; 22.05.2014
comment
Позвольте нам продолжить это обсуждение в чате. - person Matthew Bonig; 22.05.2014