Инструментарий для unit- тестирования

22
Microsoft TechDays http://www.techdays.ru Инструментарий для unit-тестирования Сергей Попов Независимый разработчик

Upload: khoi

Post on 08-Feb-2016

103 views

Category:

Documents


0 download

DESCRIPTION

Инструментарий для unit- тестирования. Сергей Попов Независимый разработчик. О чем пойдет речь?. Unit-Testing Frameworks Dependency Injection (DI) и Inversion of Control ( IoC ) Frameworks Mock Frameworks Code Coverage Tools Автоматические генераторы тестов. Unit-Testing Frameworks. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

Инструментарий для unit-тестирования

Сергей ПоповНезависимый разработчик

Page 2: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

О чем пойдет речь?Unit-Testing FrameworksDependency Injection (DI) и Inversion of Control (IoC) FrameworksMock FrameworksCode Coverage ToolsАвтоматические генераторы тестов

Page 3: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

Unit-Testing FrameworksРазметка тестовПроверка условийВыполнение тестовСоздание отчетов

Page 4: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

Unit-Testing FrameworksБиблиотека:

Разметка тестовПроверка условий

Test RunnerВыполнение тестовСоздание отчета

Page 5: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

Unit-Testing Frameworks

Демонстрация

Page 6: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

Unit-Testing Frameworks / .NET

Средства в составе Visual Studiohttp://msdn.microsoft.com/en-us/library/dd264975.aspx

NUnithttp://www.nunit.org/

xUnit.nethttp://www.codeplex.com/xunit

MbUnit / Gallio Automation Platformhttp://www.gallio.org/

Page 7: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

Unit-Testing FrameworksTestDriven.Net

http://www.testdriven.net/

Page 8: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

Inversion of Control

class Service class Storage

interface IStorage

Page 9: Инструментарий для  unit- тестирования

Dependency Injection

public class Service{ public void DoSmth(IStorage storage) { ... }}...var storage = new Storage();new Service().DoSmth(storage);...

Page 10: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

IoC & DI

Демонстрация

Page 11: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

IoC & DI Frameworks / .NETUnity (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

Page 12: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

Mock Objects & FrameworksMock Object – это реализация некоторого интерфейса, предназначенная только для тестирования

Page 13: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

Mock Frameworks

Демонстрация

Page 14: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

Плюсы Mock FrameworksПростая реализация тестовых сервисовДекларативная форма записи облегчает понимание логики работы теста

Page 15: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

Mock Frameworks / .NETMoq

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/

Page 16: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

Code Coverage Tools

Исходная сборка

Модифици-рованная

сборкаВыполнение тестов

Протокол работы Анализ Отчет

Page 17: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

Code Coverage Tools

Демонстрация

Page 18: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

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/

Page 19: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

Генераторы тестовАнализ кодаГенерация минимального набор тестов, дающих лучший Code Coverage

Page 20: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

Генераторы тестов: Microsoft Pex

Демонстрация

Page 21: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

Microsoft PexPex and Moles - Isolation and White box Unit Testing for .NET

http://research.microsoft.com/en-us/projects/pex/

Page 22: Инструментарий для  unit- тестирования

Microsoft TechDayshttp://www.techdays.ru

КонтактыСергей ПоповE-mail: [email protected]Блог:http://sergeypopov.info/Twitter:http://twitter.com/psg1234