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

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

Embed Size (px)

DESCRIPTION

 

Citation preview

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