|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
Добрый день! Кто-нибудь делал Moq на EF? Просто он не наследует никакой интерфейс. И даже при выделении этого интерфейса остается вопрос, как заполнять ObjectSet'ы, когда у них отсутствует конструктор. Сам EF заполняет их из ObjectContext'а прям из БД, как я понимаю. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
А делать Moq на ObjectContext и наследовать moq от moq'a это уже извращение ) Причем не факт, что так получится сделать, ибо ObjectContext просит строку подключения к БД... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2012, 11:29 |
|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
Поэтому проще подсунуть контексту тестовую БД с тестовыми данными. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2012, 12:16 |
|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
Алексей К, Это я уже запомнил из прошлого разговора) Просто вдруг кто знает и другое решение ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2012, 12:52 |
|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
TDD требует несколько иного подхода к формированию архитектуры приложения... Из-за чего копеечные проекты обрастают килограммами всяких интерфейсов и репозитариев/фабрик паттернов-маттернов...Если вам нуно - вперед... отделяйте работу с конкретным фреймворком (EF) отдельным забором от вашего кода. Если нет - слушайте Алексей К :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2012, 12:57 |
|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
buser, ну пусть копеечные обрастают дальше;) то есть Вы хотите сказать, что для TDD и больших проектов EF не используется, и надо писать свой слой доступа к данным? Просто как ооочень многие люди говорят: "очередной велосипед"... я не знаю уровень этих программистов, кто так говорит и мб это просто пальцы веером... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2012, 13:14 |
|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
Да, и тестовые данные естественно будут меняться. Если тесты пишутся для одних данных, то в ходе выполнения этих тестов эти же данные могут меняться так, что другие тесты уже проходить не будут. Каждый раз чистить БД и заполнять ее заново перед каждым тестом... некозырно как-то ) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2012, 13:17 |
|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
Sky Dragonто есть Вы хотите сказать, что для TDD и больших проектов EF не используется Ну почему... используют... Ведь "каждый буратино сам себе враг" Sky DragonДа, и тестовые данные естественно будут меняться. Если тесты пишутся для одних данных, то в ходе выполнения этих тестов эти же данные могут меняться так, что другие тесты уже проходить не будут. Каждый раз чистить БД и заполнять ее заново перед каждым тестом... некозырно как-то ) Может и так... но сделать это не так уж и сложно.... А вообще посмотрите на стеке темы ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2012, 13:45 |
|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
Sky DragonДа, и тестовые данные естественно будут меняться. Если тесты пишутся для одних данных, то в ходе выполнения этих тестов эти же данные могут меняться так, что другие тесты уже проходить не будут. Каждый раз чистить БД и заполнять ее заново перед каждым тестом... некозырно как-то )Зачем изменять тестовую базу? Не изменяйте её. Заведите под это дело отдельную БД если нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2012, 13:45 |
|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
buser, Посмотрю, спасибо Алексей К, ну БД отдельная. Но данные же все равно меняются. Например там 10 записей. мы 10 раз протестировали функцию удаления. На 11 тест не пройдет, так как удаления и не произойдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2012, 14:00 |
|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
Sky Dragon, Правильные ответ - это NHibernate + SQLite in memory :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2012, 14:14 |
|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
SolYUtor, про NHibernate уже много слышал, но до изучения пока не дошел. На данном этапе выбрали EF. Но на будущее учту, спасибо ) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2012, 14:27 |
|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
Sky Dragonну БД отдельная. Но данные же все равно меняются. Например там 10 записей. мы 10 раз протестировали функцию удаления. На 11 тест не пройдет, так как удаления и не произойдет.В начале теста начать транзакцию. В конце - отменить? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2012, 15:13 |
|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
Алексей КВ начале теста начать транзакцию. В конце - отменить? Ммм. Ощутить прелести распределённых транзакций? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2012, 15:27 |
|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
SolYUtorАлексей КВ начале теста начать транзакцию. В конце - отменить? Ммм. Ощутить прелести распределённых транзакций?Нет! Распределённые транзакции на пустом месте зло! Код: c# 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2012, 15:56 |
|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
SolYUtorАлексей КВ начале теста начать транзакцию. В конце - отменить? Ммм. Ощутить прелести распределённых транзакций?А чтобы иметь один ДбКонтекст и не таскать его между методами можно применить: using + ThreadStatic + счётчик ссылок . ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2012, 16:19 |
|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
Алексей К, Тогда такой еще вопрос. Не к конкретному примеру, а вообще. Обязательно при работе с БД всюду и всегда использовать транзакции? Я пока с ними еще ни разу не работал просто. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2012, 07:35 |
|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
Sky DragonТогда такой еще вопрос. Не к конкретному примеру, а вообще. Обязательно при работе с БД всюду и всегда использовать транзакции? Я пока с ними еще ни разу не работал просто.Всё зависит от задачи. Если работаем через EF, SaveChanges сохраняет всё в одной транзакции. Самостоятельное объявление транзакции может потребоваться, если нужно несколько SaveChanges объединить в одну транзакцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2012, 07:45 |
|
Moq на EntityFramework
|
|||
---|---|---|---|
#18+
Но в этом случае лучше бы работать с одним объектом ДбКонтекста, в противном случае транзакция станет распределённой. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2012, 07:46 |
|
|
start [/forum/topic.php?fid=17&fpage=33&tid=1350321]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 134ms |
0 / 0 |