20
Юнит тесты: начнем пожалуй Кардаш Николай red green refac tor

Unit Testing The Begining

Embed Size (px)

DESCRIPTION

in russian

Citation preview

Page 1: Unit Testing The Begining

Юнит тесты: начнем пожалуйКардаш Николай

redred greengreen

refactorrefactor

Page 2: Unit Testing The Begining

Что будем обсуждать

• Как выглядит юнит тест?• Что нужно знать для написания теста?• Что такое хороший тест?• Как распознать плохой тест?

Page 3: Unit Testing The Begining

Что НЕ будем обсуждать

• Какой именно фреймворк для юнит тестирования круче?

Page 4: Unit Testing The Begining

Начнем?

Page 5: Unit Testing The Begining

Юнит тест

• Любой юнит тест состоит из:

Объект исследования (тестирования)

Объект исследования (тестирования)

Начальные условияНачальные условия

Ожидаемые результатыОжидаемые результаты

Что мы тестируем?

Как мы тестируем?

Чего мы ожидаем?

Page 6: Unit Testing The Begining

Сначала реализация, потом тест

Page 7: Unit Testing The Begining

Что получается?

Объект исследования (тестирования)

Объект исследования (тестирования)

Знания (документация, мысли)

Знания (документация, мысли)

Тест 1Тест 1 Тест 2Тест 2 Тест 3Тест 3 Тест NТест N

Page 8: Unit Testing The Begining

Сначала тест, потом реализация

Page 9: Unit Testing The Begining

Что получается в этом случае?

Тест 1Тест 1

Объект исследования:

Знания:

Тест 2Тест 2 Тест NТест N

Page 10: Unit Testing The Begining

Свойства хорошего теста

• Понятное имя• Одна проверка• Понятная структура• Поведение теста очевидно• Нет зависимостей между

тестами• Условия выполнения теста

четко определены

Page 11: Unit Testing The Begining

Что такое плохой тест?

• Хрупкий тест• Дублирование кода в

тестах• Непонятный тест• Тесты с условной

логикой• Медленный тест• Неинформативные тесты

Page 12: Unit Testing The Begining

От чего зависит тест?

Объект исследования (тестирования)

Объект исследования (тестирования)

ЗависимостьЗависимостьЗависимостьЗависимость

ЗависимостьЗависимостьЗависимостьЗависимость

Page 13: Unit Testing The Begining

Что такое зависимость?

• База данных

• Конфигурационный файл

• Дополнительные компоненты и системы

• Т.е. все от чего может зависить работа тестируемого компонента

Page 14: Unit Testing The Begining

Какие бывают тесты?

• Юнит тесты

• Системные тесты

• Приемочные тесты

КК

ККЗЗ

ККЗЗ

ККЗЗ

ПП

TT

TT

TT

К – Компонент

Т – Тест

З – Зависимость

П – Приложение

Page 15: Unit Testing The Begining

Что мы узнали?

• Как выглядит юнит тест?• Что нужно знать для написания теста?• Что такое хороший тест?• Как распознать плохой тест?

Page 16: Unit Testing The Begining

Что дальше?

Page 17: Unit Testing The Begining

Вопросы

Page 18: Unit Testing The Begining

Фреймворки для тестирования

Page 19: Unit Testing The Begining

Литература

xUnit Test Patterns site amazon

Test Driven Development amazon

Page 20: Unit Testing The Begining

Блоги, Сайты

• xUnit Patterns• Extreme Programming• Ward Cunningham Wiki Pages• Google Testing Blog