Делаем unit тесты проще

14
Делаем юнит тесты проще Делаем юнит тесты проще Сергей Сергей Зеленин Зеленин Технический Технический лидер лидер Консультант Консультант GlobalLogic GlobalLogic

Upload: sergii-zelenin

Post on 19-Dec-2014

508 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Делаем Unit тесты проще

Делаем юнит тесты прощеДелаем юнит тесты проще

Сергей Зеленин Сергей Зеленин Технический лидерТехнический лидер

КонсультантКонсультантGlobalLogicGlobalLogic

Page 2: Делаем Unit тесты проще

Юнит тесты бываютЮнит тесты бывают

сложными и запутанными

Page 3: Делаем Unit тесты проще

Попробуй запустиПопробуй запусти

сложная и длительная настройка

Page 4: Делаем Unit тесты проще

Рассмотрим на примереРассмотрим на примере

Фильтр файлов

shouldFilterByExtension

shouldFilterbyName

shouldFilterBy…

Page 5: Делаем Unit тесты проще

Можно сделать такМожно сделать так

Page 6: Делаем Unit тесты проще

Уровень декларацийУровень декларацийБыл бы такой тест понятнее?

Page 7: Делаем Unit тесты проще

Как это реализовать?Как это реализовать?Написать свой Runner

и аннотацию

http://bit.ly/HRUUPMПодробнее здесь

Page 8: Делаем Unit тесты проще

Runner Runner краем глазакраем глазаНаследуемся

http://bit.ly/HRUUPMПодробнее здесь

Перекрываем runChild

Возвращаем свой MethodInvoker

Page 9: Делаем Unit тесты проще

Еще декларацииЕще декларации

Добавим именованные параметры

Page 10: Делаем Unit тесты проще

Обычный Обычный RefactoringRefactoring

Применяем Extract method и другие

Page 11: Делаем Unit тесты проще

Классы Классы FixtureFixtureСодержат логику инициализации

Можно использовать в тестах

Page 12: Делаем Unit тесты проще

Fixtures Fixtures в в SpringSpringФикстуры как Spring beans

Использование бинов в фикстурах

Page 13: Делаем Unit тесты проще

Мы рассмотрели:

«Декларативные предусловия»

«Классы-фикстуры»

Page 14: Делаем Unit тесты проще

Жду ваших вопросовЖду ваших вопросов

Сергей ЗеленинСергей Зеленин[email protected]@gmail.com

http://szelenin.blogspot.comhttp://szelenin.blogspot.comSkype: sergey_zeleninSkype: sergey_zelenin

@szelenin@szelenin