SlideShare a Scribd company logo
Использование Mock-объектов в TDD на платформе .NET
   Пару слов про TDD
   Рекомендации по написанию тестов
   Что такое моки
   Когда и каким образом использовать моки
   Пример тестов с использованием
    фреймворков
     NUnit + NBehave
     Moq
     TestDox
Использование Mock-объектов в TDD на платформе .NET
Разработка через тестирование (test-driven
development, TDD) — техника разработки
программного обеспечения, которая основывается
на повторении очень коротких циклов разработки:

1. сначала пишется тест, покрывающий желаемое
   изменение
2. затем пишется код, который позволит пройти
   тест
3. и под конец проводится рефакторинг нового
   кода к соответствующим стандартам.
Использование Mock-объектов в TDD на платформе .NET
Использование Mock-объектов в TDD на платформе .NET
Использование Mock-объектов в TDD на платформе .NET
Использование Mock-объектов в TDD на платформе .NET
   Тест должен «говорить» какой сценарий
    он проверяет

   Наименование теста пишется в нотации
    pascal-case

Пример:
 Message_Should_Be_Deleted_After_Send
   Один тест проверяет один короткий
    сценарий работы класса/набора
    взаимодействующих классов

   В одном тесте содержится только одна
    проверка assert
Использование Mock-объектов в TDD на платформе .NET
Использование Mock-объектов в TDD на платформе .NET
Использование Mock-объектов в TDD на платформе .NET
Моки – это автоматически генерируемые
заглушки для интерфейсов и классов.

Моки позволяют моделировать поведение
объекта:
  Результаты работы методов
  Генерацию событий, обратный вызов
   методов
  Обращение к методам и свойствам класса
   Изоляция тестируемого кода – имитация
    БД.

   Имитация ненаписанного кода.

   Тестирование делегирования – проверка
    последовательности вызовов между
    классами.
   Возврат определенных значений метода
    объекта.

   Генерацию событий объекта.

   Верификацию количества вызовов
    методов.
Виды unit-
         тестов



  Тесты            Тесты
состояния     взаимодействия
Использование Mock-объектов в TDD на платформе .NET
   Генератор отчетов умеет создавать отчет
    на выбранную дату
   Отчеты могут быть созданы как за текущие
    сутки, так и за прошлые
   Формирование отчетов за будущее
    недоступно
   Отчеты сформированный в нечетные дни
    должны отправляться по почте
   Быстрый старт по библиотеке Moq –
    http://code.google.com/p/moq/wiki/QuickStart
   Александр Бындю «TDD для начинающих»
    – http://vimeo.com/9541997
   Андрей Бибичев «Быстрое введение в TDD
    от А до Я» – http://www.slideshare.net/biBIGine/fast-intro-into-tdd
   Написание unit-тестов
     Рекомендации по оформлению тестов
     Тестирование генерации исключений, событий
   Использование фреймворка Moq
     Имитация работы объекта в зависимости от
      параметра
     Верификация вызовов
   Трёшников Павел
     Ведущий разработчик СМС-ИТ
        ▪ www.sms-automation.ru

     e-mail: treshnikov@gmail.com
     twitter: @treshnikov

More Related Content

PDF
Тестирование осень 2013 лекция 4
PPT
Тестирование весна 2014 смешанное занятие 2
PPTX
ковалев нестандатное нт
ODP
День 1: Автоматизированное тестирование: Введение
PPTX
Андрей Зайцев - TDD в кровавом энтерпрайзе
PDF
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
PDF
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
PPT
Нагрузочное тестирование web-приложений с помощью Load Runner
Тестирование осень 2013 лекция 4
Тестирование весна 2014 смешанное занятие 2
ковалев нестандатное нт
День 1: Автоматизированное тестирование: Введение
Андрей Зайцев - TDD в кровавом энтерпрайзе
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
Нагрузочное тестирование web-приложений с помощью Load Runner

What's hot (20)

PDF
Rambler.iOS #3: Test-Driven Development в iOS
PPTX
Фофанов Илья - Лучшие практики проектирования и реализации API на C#
PPT
Сергей Кащенко - Опыт внедрения метрик
PDF
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...
PPT
Инструментация среды исполнения в арсенале тестировщика
PDF
Практическое применение принципа инверсии зависимостей на примере Ruby
PPTX
Двухкратный публичный code review, Евгения Фирсова (Яндекс)
PPT
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
PDF
Организация процесса ручного тестирования
PPTX
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
PPTX
Sqadays 8-barancev
PPT
Unit Testing
PDF
Выбор и тестирование Ngfw. Опыт Rambler
PPTX
QA Лекция2
PPTX
лекция4 qa
PDF
Тестирование осень 2013 лекция 3
PPTX
лекция3 QA
PPT
ClubQA #2. Unit testing and TDD
PPTX
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
PPTX
TMPA-2013 Itsykson: Java Program Analysis
Rambler.iOS #3: Test-Driven Development в iOS
Фофанов Илья - Лучшие практики проектирования и реализации API на C#
Сергей Кащенко - Опыт внедрения метрик
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...
Инструментация среды исполнения в арсенале тестировщика
Практическое применение принципа инверсии зависимостей на примере Ruby
Двухкратный публичный code review, Евгения Фирсова (Яндекс)
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
Организация процесса ручного тестирования
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Sqadays 8-barancev
Unit Testing
Выбор и тестирование Ngfw. Опыт Rambler
QA Лекция2
лекция4 qa
Тестирование осень 2013 лекция 3
лекция3 QA
ClubQA #2. Unit testing and TDD
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
TMPA-2013 Itsykson: Java Program Analysis
Ad

Viewers also liked (13)

PPTX
Использование Mock объектов в модульном тестировании
PDF
Быстрое введение в TDD от А до Я
PPTX
Коротко о Scrum
PPTX
SOLID – принципы объектно-ориентированного дизайна
PPTX
Разработка приложений работы с данными при помощи WPF
PPTX
Working with .NET Threads
PPTX
ПАК Мониторинг - краткое описание системы
PPTX
Системы контроля версий
PPTX
Расчет и документирование технологических процессов на базе WinCC OA
PPTX
PPTX
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
PPTX
Процессы, практики, инструменты разработки программного обеспечения
PPTX
Siemens oil and gas 2016 WinCC OA
Использование Mock объектов в модульном тестировании
Быстрое введение в TDD от А до Я
Коротко о Scrum
SOLID – принципы объектно-ориентированного дизайна
Разработка приложений работы с данными при помощи WPF
Working with .NET Threads
ПАК Мониторинг - краткое описание системы
Системы контроля версий
Расчет и документирование технологических процессов на базе WinCC OA
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Процессы, практики, инструменты разработки программного обеспечения
Siemens oil and gas 2016 WinCC OA
Ad

Similar to Использование Mock-объектов в TDD на платформе .NET (20)

PPTX
Test Driven Development in .NET Applications
PPTX
Test driven development in net
PDF
Модульное тестирование и TDD в .NET
PPTX
Повышение качества тестов и автоматическая валидация REST API документации
PPTX
AgileCamp’11 Новосибирск - Test Driven Development (TDD)
PDF
TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...
PDF
C# Desktop. Занятие 17.
PPTX
Tdd in the world of big data
PPTX
PPTX
JS Lab2017_Евгений Сафронов_Тестирование Javascript кода. Инструменты, практи...
PDF
Testing & TDD
PPTX
Автоматизация.pptx
PPT
5 лекция. презентация
PPTX
Ошибки начинающих Tdd практиков, плюсы применения
PPT
Tdd Workshop Disscussions
PPTX
Unit tests
PPTX
Тестирование ПО
PDF
Когда код «убивает», или зачем нам тестировать наши продукты
Test Driven Development in .NET Applications
Test driven development in net
Модульное тестирование и TDD в .NET
Повышение качества тестов и автоматическая валидация REST API документации
AgileCamp’11 Новосибирск - Test Driven Development (TDD)
TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...
C# Desktop. Занятие 17.
Tdd in the world of big data
JS Lab2017_Евгений Сафронов_Тестирование Javascript кода. Инструменты, практи...
Testing & TDD
Автоматизация.pptx
5 лекция. презентация
Ошибки начинающих Tdd практиков, плюсы применения
Tdd Workshop Disscussions
Unit tests
Тестирование ПО
Когда код «убивает», или зачем нам тестировать наши продукты

Использование Mock-объектов в TDD на платформе .NET

  • 2. Пару слов про TDD  Рекомендации по написанию тестов  Что такое моки  Когда и каким образом использовать моки  Пример тестов с использованием фреймворков  NUnit + NBehave  Moq  TestDox
  • 4. Разработка через тестирование (test-driven development, TDD) — техника разработки программного обеспечения, которая основывается на повторении очень коротких циклов разработки: 1. сначала пишется тест, покрывающий желаемое изменение 2. затем пишется код, который позволит пройти тест 3. и под конец проводится рефакторинг нового кода к соответствующим стандартам.
  • 9. Тест должен «говорить» какой сценарий он проверяет  Наименование теста пишется в нотации pascal-case Пример:  Message_Should_Be_Deleted_After_Send
  • 10. Один тест проверяет один короткий сценарий работы класса/набора взаимодействующих классов  В одном тесте содержится только одна проверка assert
  • 14. Моки – это автоматически генерируемые заглушки для интерфейсов и классов. Моки позволяют моделировать поведение объекта:  Результаты работы методов  Генерацию событий, обратный вызов методов  Обращение к методам и свойствам класса
  • 15. Изоляция тестируемого кода – имитация БД.  Имитация ненаписанного кода.  Тестирование делегирования – проверка последовательности вызовов между классами.
  • 16. Возврат определенных значений метода объекта.  Генерацию событий объекта.  Верификацию количества вызовов методов.
  • 17. Виды unit- тестов Тесты Тесты состояния взаимодействия
  • 19. Генератор отчетов умеет создавать отчет на выбранную дату  Отчеты могут быть созданы как за текущие сутки, так и за прошлые  Формирование отчетов за будущее недоступно  Отчеты сформированный в нечетные дни должны отправляться по почте
  • 20. Быстрый старт по библиотеке Moq – http://code.google.com/p/moq/wiki/QuickStart  Александр Бындю «TDD для начинающих» – http://vimeo.com/9541997  Андрей Бибичев «Быстрое введение в TDD от А до Я» – http://www.slideshare.net/biBIGine/fast-intro-into-tdd
  • 21. Написание unit-тестов  Рекомендации по оформлению тестов  Тестирование генерации исключений, событий  Использование фреймворка Moq  Имитация работы объекта в зависимости от параметра  Верификация вызовов
  • 22. Трёшников Павел  Ведущий разработчик СМС-ИТ ▪ www.sms-automation.ru  e-mail: treshnikov@gmail.com  twitter: @treshnikov