Upload
mikalaikardash
View
933
Download
3
Embed Size (px)
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 Patterns• Extreme Programming• Ward Cunningham Wiki Pages• Google Testing Blog