Использование Mock-объектов в TDD на платформе .NET
1.
2. Пару слов про TDD
Рекомендации по написанию тестов
Что такое моки
Когда и каким образом использовать моки
Пример тестов с использованием
фреймворков
NUnit + NBehave
Moq
TestDox
3.
4. Разработка через тестирование (test-driven
development, TDD) — техника разработки
программного обеспечения, которая основывается
на повторении очень коротких циклов разработки:
1. сначала пишется тест, покрывающий желаемое
изменение
2. затем пишется код, который позволит пройти
тест
3. и под конец проводится рефакторинг нового
кода к соответствующим стандартам.
5.
6.
7.
8.
9. Тест должен «говорить» какой сценарий
он проверяет
Наименование теста пишется в нотации
pascal-case
Пример:
Message_Should_Be_Deleted_After_Send
10. Один тест проверяет один короткий
сценарий работы класса/набора
взаимодействующих классов
В одном тесте содержится только одна
проверка assert
11.
12.
13.
14. Моки – это автоматически генерируемые
заглушки для интерфейсов и классов.
Моки позволяют моделировать поведение
объекта:
Результаты работы методов
Генерацию событий, обратный вызов
методов
Обращение к методам и свойствам класса
16. Возврат определенных значений метода
объекта.
Генерацию событий объекта.
Верификацию количества вызовов
методов.
17. Виды unit-
тестов
Тесты Тесты
состояния взаимодействия
18.
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