SlideShare a Scribd company logo
1 of 14
Делаем юнит тесты проще


           Сергей Зеленин
           Технический лидер
              Консультант
               GlobalLogic
Юнит тесты бывают




 сложными и запутанными
Попробуй запусти




сложная и длительная настройка
Рассмотрим на примере
Фильтр файлов
            shouldFilterByExtension

            shouldFilterbyName

            shouldFilterBy…
Можно сделать так
Уровень деклараций
Был бы такой тест понятнее?
Как это реализовать?
Написать свой Runner



и аннотацию




        Подробнее здесь   http://bit.ly/HRUUPM
Runner краем глаза
Наследуемся

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




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



         Подробнее здесь   http://bit.ly/HRUUPM
Еще декларации
Добавим именованные параметры
Обычный Refactoring
Применяем Extract method и другие
Классы Fixture
Содержат логику инициализации




Можно использовать в тестах
Fixtures в Spring
Фикстуры как Spring beans




Использование бинов в фикстурах
Мы рассмотрели:
«Декларативные предусловия»

«Классы-фикстуры»
Жду ваших вопросов

           Сергей Зеленин
       sergey.zelenin@gmail.com
      http://szelenin.blogspot.com
         Skype: sergey_zelenin
                @szelenin

More Related Content

What's hot

Sqa.days.2010.beskov.system.analyst.and.test.engineers.interaction
Sqa.days.2010.beskov.system.analyst.and.test.engineers.interactionSqa.days.2010.beskov.system.analyst.and.test.engineers.interaction
Sqa.days.2010.beskov.system.analyst.and.test.engineers.interactionAlexei Lupan
 
4 формулировки результатов
4 формулировки результатов4 формулировки результатов
4 формулировки результатовDemanessa
 
Пользовательские требования в жизни тестировщика
Пользовательские требования в жизни тестировщикаПользовательские требования в жизни тестировщика
Пользовательские требования в жизни тестировщикаSQALab
 
SOLID Principles in the real world
SOLID Principles in the real worldSOLID Principles in the real world
SOLID Principles in the real worldEPAM
 
Тестирование весна 2014 смешанное занятие 2
Тестирование весна 2014 смешанное занятие 2Тестирование весна 2014 смешанное занятие 2
Тестирование весна 2014 смешанное занятие 2Technopark
 
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015Alina Dolgikh
 
Тестирирование с xUnit
Тестирирование с xUnitТестирирование с xUnit
Тестирирование с xUnitAlexander Goida
 
Controlled technical russian
Controlled technical russianControlled technical russian
Controlled technical russianGoudron1979
 
Грабли автоматизации. Учимся на чужих ошибках
Грабли автоматизации. Учимся на чужих ошибкахГрабли автоматизации. Учимся на чужих ошибках
Грабли автоматизации. Учимся на чужих ошибкахSQALab
 

What's hot (13)

Классы и объекты С#
Классы и объекты С#Классы и объекты С#
Классы и объекты С#
 
Sqa.days.2010.beskov.system.analyst.and.test.engineers.interaction
Sqa.days.2010.beskov.system.analyst.and.test.engineers.interactionSqa.days.2010.beskov.system.analyst.and.test.engineers.interaction
Sqa.days.2010.beskov.system.analyst.and.test.engineers.interaction
 
4 формулировки результатов
4 формулировки результатов4 формулировки результатов
4 формулировки результатов
 
Пользовательские требования в жизни тестировщика
Пользовательские требования в жизни тестировщикаПользовательские требования в жизни тестировщика
Пользовательские требования в жизни тестировщика
 
50 оттенков красного
50 оттенков красного50 оттенков красного
50 оттенков красного
 
SOLID Principles in the real world
SOLID Principles in the real worldSOLID Principles in the real world
SOLID Principles in the real world
 
Тестирование весна 2014 смешанное занятие 2
Тестирование весна 2014 смешанное занятие 2Тестирование весна 2014 смешанное занятие 2
Тестирование весна 2014 смешанное занятие 2
 
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015
 
Наследование и полиморфизм
Наследование и полиморфизмНаследование и полиморфизм
Наследование и полиморфизм
 
Insane Byte' 2017
Insane Byte' 2017Insane Byte' 2017
Insane Byte' 2017
 
Тестирирование с xUnit
Тестирирование с xUnitТестирирование с xUnit
Тестирирование с xUnit
 
Controlled technical russian
Controlled technical russianControlled technical russian
Controlled technical russian
 
Грабли автоматизации. Учимся на чужих ошибках
Грабли автоматизации. Учимся на чужих ошибкахГрабли автоматизации. Учимся на чужих ошибках
Грабли автоматизации. Учимся на чужих ошибках
 

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

Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Dmitry Buzdin
 
Do you know what you are testing?
Do you know what you are testing?Do you know what you are testing?
Do you know what you are testing?Mikalai Alimenkou
 
А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?SQALab
 
AOP and Design Patterns (GoF)
AOP and Design Patterns (GoF)AOP and Design Patterns (GoF)
AOP and Design Patterns (GoF)Andrey Gordienkov
 
Aspect Oriented Programming and Design Patterns
Aspect Oriented Programming and Design PatternsAspect Oriented Programming and Design Patterns
Aspect Oriented Programming and Design PatternsAndrey Gordienkov
 
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"QA Dnepropetrovsk Community (Ukraine)
 
Learning 3.0: Революционный подход к обучению
Learning 3.0: Революционный подход к обучениюLearning 3.0: Революционный подход к обучению
Learning 3.0: Революционный подход к обучениюAlexey Pikulev
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)SPB SQA Group
 

Similar to Делаем Unit тесты проще (10)

Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
eTeachersSummit 09.02.12 Татьяна Кузьмина
eTeachersSummit 09.02.12 Татьяна КузьминаeTeachersSummit 09.02.12 Татьяна Кузьмина
eTeachersSummit 09.02.12 Татьяна Кузьмина
 
Do you know what you are testing?
Do you know what you are testing?Do you know what you are testing?
Do you know what you are testing?
 
А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?
 
AOP and Design Patterns (GoF)
AOP and Design Patterns (GoF)AOP and Design Patterns (GoF)
AOP and Design Patterns (GoF)
 
Aspect Oriented Programming and Design Patterns
Aspect Oriented Programming and Design PatternsAspect Oriented Programming and Design Patterns
Aspect Oriented Programming and Design Patterns
 
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
 
Learning 3.0: Революционный подход к обучению
Learning 3.0: Революционный подход к обучениюLearning 3.0: Революционный подход к обучению
Learning 3.0: Революционный подход к обучению
 
Как работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
Как работать с legacy проектом, которому больше10 лет? |Денис ВоскобойникКак работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
Как работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)
 

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