Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
Пытаюсь сделать прирожения ASP.NET MVC WEBAPI по примеру c Generic Repository и UnitOfWork. Само приложение работает нормально, но возникла необходимость написать юнит тесты. Для тестирования использую библиотеку Moq . Нужно протестировать 4 CRUD метода. Я создаю mock-объект в отдельном методе как-то так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. IRepository - интерфейс generic хранилища который объявляет в основном CRUD Country - моя таблица с 2 полями Дальше делаю метод для тестирования Post-метода Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. В результатке Assert1 проходит но Assert2 возвращает всеравно 2 записи. Подскажите пожалуйста что я делаю не там? Если нужно буде мой код реализации контроллера, UnitOfWork.cs и класа который реализует репозиторий, я скину позже Заранее благодарен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 01:53 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
извиняюсь за ошибки в тексте :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 01:56 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
RomaMarusyk, дак а как Вы реализовали добавление? У Вас каждый раз свойство IRepository.Table новый массив ( new Country[] ) ровно из двух элементов возвращается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 06:51 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
Как То так, я все делал по примеру. я так понимаю что для тестирования такой вариант не подходит изза того что здесь я роботаю з контекстом, да? =class EFRepository<T> : IRepository<T> Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 10:30 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
RomaMarusyk, почему бы и не потестировать на отладочной базе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 10:57 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
Развели энтерпрайз на ровном месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 11:09 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
Pallaris, В принципе можно и на базе но хотелось бы сделать это независимо от базы. В нете читал что правильный подход к тестированию это использование mock обьектов и нашел полно примеров но пока реализовать не удалось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 11:39 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
RomaMarusyk, сделай для тестов простенький репозиторий (не мок!), который будет в памяти работать c неким List<> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 12:02 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
есть решение. в моке было задано только возвращение коллекции стран но не задана их вставка/сохранение. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 13:39 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
RomaMarusykPallaris, В принципе можно и на базе но хотелось бы сделать это независимо от базы. В нете читал что правильный подход к тестированию это использование mock обьектов и нашел полно примеров но пока реализовать не удалосьЕсли на базе, то это будет так называемый Интеграционный тест , что тоже есть правильный подход. Читайте дальше :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 14:43 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
RomaMarusykесть решение. в моке было задано только возвращение коллекции стран но не задана их вставка/сохранениеЯ про это сразу и спросил. Достаёте через свойство, вставляете через метод... Дела :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 14:44 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
На фига Entities наружу тогда торчит? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 14:45 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
skyANA, потому что я использую интерфейс IRepository и не могу сделать private ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 15:26 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
RomaMarusykесть решение. в моке было задано только возвращение коллекции стран но не задана их вставка/сохранение. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Не вижу смысла тут использовать мок, зачем? Можно за 5 минут сделать полноценный класс вставки/удаления/изменения в List<> и обернуть его в IRepository. Будет читабельнее, чем городить вырвиглазный CRUD на моке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 16:06 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
RomaMarusykskyANA, потому что я использую интерфейс IRepository и не могу сделать privateДак уберите из интерфейса лишнее свойство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 18:46 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
PallarisRomaMarusykесть решение. в моке было задано только возвращение коллекции стран но не задана их вставка/сохранение. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Не вижу смысла тут использовать мок, зачем? Можно за 5 минут сделать полноценный класс вставки/удаления/изменения в List<> и обернуть его в IRepository. Будет читабельнее, чем городить вырвиглазный CRUD на моке. Moq - это модно :) Ну и позвляет засетапить только то, что тебе нужно в конкретных тестах. А не оставлять большую часть методов с внутренностями вида: Код: c# 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 18:49 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
skyANA, Спасибо большое skyANA Moq - это модно :) да, и это моя основная причина его использования, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 18:57 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
RomaMarusykskyANA Moq - это модно :) да, и это моя основная причина его использования, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 20:25 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
Я-то по наивности, думал, что нахожусь на АйТи форуме, а нет - оказывается, на форуме высокой моды :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2015, 20:29 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
Axeleron, открой словарь русских синонимов к слову модный: популярный, ходкий, употребительный, современный; в моде, в употреблении, в ходу, обыкновенный. Moq - это современный и популярный инструмент, используемый при написании тестов. Жги! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 08:43 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
skyANARomaMarusykPallaris, В принципе можно и на базе но хотелось бы сделать это независимо от базы. В нете читал что правильный подход к тестированию это использование mock обьектов и нашел полно примеров но пока реализовать не удалосьЕсли на базе, то это будет так называемый Интеграционный тест , что тоже есть правильный подход. Читайте дальше :) Так он и хочет интегрального теста, т.к. в одном тесте 1. записать в заглушку 2. прочитать что записал в заглушку (очень нужное/полезное действо) при этом пытается использовать инструментарий юниттетсирования. Удивляется как все нелепо получается, но верит в то, что он делает. Т.е. смело и модно идет против системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2015, 11:48 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
bazaea, Нет, Вы не правы! Мне нужен иммено юнит тест который не использует базу данных а только симулирует хранилище. Просто Вы слабо разбираетесь в тестах. Суть теста не в том чтобы прочитать записанные данные а в том чтобы проследить как влияют изменения в методе который тестируется на обработку данных. У меня есть входные данные и результат результат который должен получиться. Значит мне нужно подстраивать свой метод под ожидаемый результат. Если я внесу изменения в обработку данных тогда есть вероятность того что фактический результат может не совпадать с ожидаемым, и тест мне об этом сообщит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2015, 13:37 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
RomaMarusyk, так и тестируйте правильно. отдельно запись, отдельно чтение. Код: c# 1. 2. 3. 4. 5. 6. Реализацию _IRepository.Insert(value); - вы должны тестировать отдельно, но зачем-то проверяете работоспособность заглушки Чтение данных (Get) - вы должны тестировать отдельно У меня есть входные данные и результат результат который должен получиться. результат который должен получиться - это возвращаемые значения/выпавшие исключения, а не значения из непонятно как работающего Get. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2015, 17:21 |
|
||
|
ASP.NET WebAPI UnitTest используя Moq с Generic Repository и UnitOfWork
|
|||
|---|---|---|---|
|
#18+
bazaea, если Вы не поняли вопроса то я повторю, я спрашивал о том как настроить Moq а не как правильно писать тесты. если вам нечего предложить по данной теме тогда прошу не путать с темой "Научите меня правильно писать юнит тесты" проблема была с именно мок и она уже решена, но спасибо что переживаете за мои тесты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 00:37 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38993041&tid=1356388]: |
0ms |
get settings: |
6ms |
get forum list: |
26ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 366ms |

| 0 / 0 |
