Microsoft TechDayshttp:// Прукс Александр
Microsoft TechDayshttp:// Что такое юнит тесты Инструменты Юнит тесты на практике Мок фреймворки
Microsoft TechDayshttp:// Юнит самый маленький, неделимый участок кода в системе Тест на юнит
Microsoft TechDayshttp:// Быстрые Неприхотливые Для программистов Не проверяют взаимодействие объектов
Microsoft TechDayshttp:// Среда разработки Тест фреймворк Интеграция в среду разработки Сервер сборок
Microsoft TechDayshttp:// Среда: Visual Studio Professional Фреймворк: MsTests Сервер: Team Foundation Server
Microsoft TechDayshttp:// Среда: Visual Studio Express, Eclipse (?) Фреймворк: NUnit, mbUnit, xUnit (open source)NUnitmbUnitxUnit Интеграция: TestDriven.Net TestDriven.Net (free/$) ReSharperReSharper (free/$) Сервер: CruiseControl CruiseControl (free) TeamCityTeamCity (free/$)
Microsoft TechDayshttp:// Microsoft Все в одном Дополнительные инструменты (генерация, анализ, покрытие..) ?Unit Больше функций у самого фреймворка (проверки, атрибуты и т.д.) Удобно добавлять функции
Microsoft TechDayshttp:// html Попов Сергей. NUnit: знакомство TypeMock TestLintTypeMock TestLint валидатор тестов
Microsoft TechDayshttp:// Не бывает изолированных объектов (юнитов) Связи: User Interface Базы данных Сеть Другие объекты
Microsoft TechDayshttp:// Избавиться от связей или сделать их более слабыми «Обмануть» тестируемый код, предоставив ему специальный объект вместо зависимости
Microsoft TechDayshttp:// Тест на объект, использующий WCF
Microsoft TechDayshttp:// UI: MainWindowBL: CalcModel WCF: CalcServiceClient
Microsoft TechDayshttp:// CalcModel ServiceClient WCF
Microsoft TechDayshttp:// Требует специальной конфигурации Реальная служба может быть недоступна (нет интернета, разрабатывается …) Нужно имитировать ошибки службы
Microsoft TechDayshttp:// Выделить интерфейс зависимого объекта Инициализацию поручить другому объекту Dependency Injection (Unity, Spring …)
Microsoft TechDayshttp:// ModelIServiceWCFTestLocal
Microsoft TechDayshttp:// Вспомогательные тестовые объекты Stub – заглушка. Предоставляет данные в тест Mock – пародия, подделка. Задает поведение объекта Проверяет вызов методов
Microsoft TechDayshttp:// Создают тестовые объекты Задают поведение методов и свойств Улучшают читаемость Быстро работают
Microsoft TechDayshttp:// MoqMoq, Rhino Mocks Rhino Mocks Open Source Подменяет интерфейсы, делегаты и виртуальные методы классов Typemock Коммерческий продукт Заменяет почти любой объект SharePoint, Silverlight, WWF,WCF … В Visual Studio интегрирована система генерации кода
Microsoft TechDayshttp:// Автоматизированный Простой Быстрый Надежный Точный
Microsoft TechDayshttp://
Говорящее название 1 Assert Макс 10 строк Никакой логики Циклы Многопоточность Условные операторы …
Microsoft TechDayshttp:// 10 секунд на весь набор тестов
Microsoft TechDayshttp:// Тестируется только код Падают только при ошибках в коде Выполняются в любом окружении Все тесты изолированы
Microsoft TechDayshttp:// Минимальное время выполнения Можно запускать после каждого изменения кода Раньше находятся баги Улучшают (иногда) архитектуру Могут писаться программистами (TDD)
Microsoft TechDayshttp:// Другие виды тестов все равно нужны QA получают более качественный код Интеграционные писать проще.. Profit!
Microsoft TechDayshttp:// Roy Osherove. The Art of unit Testing