Unit Testing The Begining

Preview:

DESCRIPTION

in russian

Citation preview

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

redred greengreen

refactorrefactor

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

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

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

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

Начнем?

Юнит тест

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Тест 1Тест 1

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

Знания:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• База данных

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

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

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

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

• Юнит тесты

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

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

КК

ККЗЗ

ККЗЗ

ККЗЗ

ПП

TT

TT

TT

К – Компонент

Т – Тест

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

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

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

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

Что дальше?

Вопросы

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

Литература

xUnit Test Patterns site amazon

Test Driven Development amazon

Блоги, Сайты

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