220 likes | 470 Views
Инструментарий для unit- тестирования. Сергей Попов Независимый разработчик. О чем пойдет речь?. Unit-Testing Frameworks Dependency Injection (DI) и Inversion of Control ( IoC ) Frameworks Mock Frameworks Code Coverage Tools Автоматические генераторы тестов. Unit-Testing Frameworks.
E N D
Инструментарий для unit-тестирования Сергей Попов Независимый разработчик
О чем пойдет речь? • Unit-Testing Frameworks • Dependency Injection (DI) и Inversion of Control (IoC) Frameworks • Mock Frameworks • Code Coverage Tools • Автоматические генераторы тестов
Unit-Testing Frameworks • Разметка тестов • Проверка условий • Выполнение тестов • Создание отчетов
Unit-Testing Frameworks • Библиотека: • Разметка тестов • Проверка условий • Test Runner • Выполнение тестов • Создание отчета
Unit-Testing Frameworks Демонстрация
Unit-Testing Frameworks / .NET • Средства в составе Visual Studio • http://msdn.microsoft.com/en-us/library/dd264975.aspx • NUnit • http://www.nunit.org/ • xUnit.net • http://www.codeplex.com/xunit • MbUnit/ GallioAutomation Platform • http://www.gallio.org/
Unit-Testing Frameworks • TestDriven.Net • http://www.testdriven.net/
Inversion of Control interface IStorage class Service class Storage
Dependency Injection • public class Service • { • public void DoSmth(IStorage storage) • { • ... • } • } • ... • var storage = new Storage(); • new Service().DoSmth(storage); • ...
IoC& DI Демонстрация
IoC & DI Frameworks / .NET • Unity (Microsoft Patterns & Practices) • http://unity.codeplex.com/ • Ninject • http://ninject.org/ • Spring.NET • http://www.springframework.net/ • MEF (Managed Extensibility Framework) • http://msdn.microsoft.com/en-us/library/dd460648.aspx
Mock Objects& Frameworks • Mock Object – это реализация некоторого интерфейса, предназначенная только для тестирования
Mock Frameworks Демонстрация
Плюсы Mock Frameworks • Простая реализация тестовых сервисов • Декларативная форма записи облегчает понимание логики работы теста
Mock Frameworks / .NET • Moq • http://code.google.com/p/moq/ • NMock • http://nmock.org/ • Isolator.NET • http://www.typemock.com/ • Microsoft Moles • http://research.microsoft.com/en-us/projects/moles/
Code Coverage Tools Исходная сборка Модифици-рованная сборка Выполнение тестов Протокол работы Анализ Отчет
Code Coverage Tools Демонстрация
Code Coverage Tools/ .NET • Средства, входящие в Visual Studio • Using Code Coverage to Determine How Much Code Is Being Testedhttp://msdn.microsoft.com/en-us/library/dd537628.aspx • NCoverhttp://www.ncover.com/
Генераторы тестов • Анализ кода • Генерация минимального набор тестов, дающих лучший Code Coverage
Генераторы тестов: Microsoft Pex Демонстрация
Microsoft Pex • Pex and Moles - Isolation and White box Unit Testing for .NET • http://research.microsoft.com/en-us/projects/pex/
Контакты Сергей Попов E-mail: psg@sergeypopov.info Блог: http://sergeypopov.info/ Twitter: http://twitter.com/psg1234