Содержание
- 2. «Без тестов жить нельзя на свете, нет» Тесты хорошо, а TDD лучше Результат применения: Рабочий протестированный
- 3. Unit-тесты. Когда невыгодно/неудобно/не получается использовать Слишком дорого Невысокая цена ошибки Надо было сделать вчера
- 4. Ситуации, когда сложно использовать юнит-тесты Нужно протестировать класс, который взаимодействует с с базой данных с внешним
- 5. Выход – использовать поддельные объекты Пробуем: Сделаем вид, что мы не знаем про моки Ура, используем
- 6. Разновидности поддельных объектов (test doubles) Dummy Test Stub Test Spy Mock object Fake Object
- 7. Behavior vs state verification Mock-стиль проверки (behavior verification) мы проверям, как происходит взаимодействие объектов. Классический стиль
- 8. Принцип работы и ограничения «классических» mock-объектов Возможности и ограничения: Можно мочить классы и интерфейсы. В классах
- 9. Существующие фреймворки NMock, Nmock2 (RR) Rhino Mocks (AAA, RR, …) Moq (AAA) Microsoft.Moles TypeMock
- 10. Record-Replay syntax (RR) (пример кода на Rhino.Mocks)
- 11. Возможности Moq Последнее обновление — август 2010. Текущая версия — 4.0. Не поддерживает Record/Replay. Минимальная версия
- 12. Microsoft.Moles Не является классической mock-библиотекой. Может переопределять все, что угодно (пример) Можно переопределять члены системных типов
- 13. Microsoft.Moles: заглушки и моли
- 14. Мы можем указывать, какие типы хотим переопределять
- 15. Можно управлять поведением Чтобы изменить поведение объекта, делаем так: stub.InstanceBehavior = BehavedBehaviors.DefaultValue; MoleBehaviors.DefaultValue — незамещенные члены
- 16. Microsoft.Moles: выводы Мощное средство изоляции Но как всегда есть недостатки: Не хватает моков Накладные расходы на
- 17. TypeMock Платная библиотека для написания тестов в изоляции. Лишена некоторых недостатков Microsoft.Moles Осуществляет перехват вызовов на
- 18. Промежуточные выводы Использовать Moles и Typemock не всегда полезно При построении новой логики лучше пользоваться DIP
- 19. Выводы Использование моков и заглушек: расширяет применимость юнит-тестов позволяют легко тестировать объекты, не имеющие состояния упрощают
- 21. Скачать презентацию