SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
UNIT TESTING
Дмитрий Павлов
Александр Андронов
Контакты

http://get.cardmone.net
Правила
Перерывы
Жест
Никаких мобил
Ноуты только на упражнениях
Парковка
Проверка домашней работы
План
1. Зачем тестировать?
2. Структура теста

3. Assert first
4. Именование (3 подхода)
5. DSL

6. Mock, Stub, Fake, Spy
7. Тесты на поведение и состояние
8. Хороший тест

9. Интеграционный тест
10. Автоматический приемочный тест
11. SpecFlow
12. Пирамида тестирования
WHY TEST?

Зачем тестировать?
FEAR

Страх
Другой парень

THE OTHER GUY
Обратная связь

FEEDBACK
Польза от тестов
Когда интерн заявляет «Тесты для тех, кто не умеет программировать»

http://martinvalasek.com/blog/pictures-from-a-developers-life-part-2
ИМЕНОВАНИЕ
When…
When<Action>

<Arrange><Assert>
WhenAuthorizeUser
AdminCanLogin
HackerCanNotLogin

WhenLoadMovies
AdminCanSeeAllMovies
ChildrenMustNotNotSeeRestrictedMovies
<Arrange>… <Assert>
<Arrange>

<Assert>
RegularMovieWith18RateIs

RestrictedForUser
AvailableForAdmin
SeriesMovieWith18RateIs
AvailableForChild

AvailableForAdmin
<Assert>… <Arrange>
<Assert>

<Arrange>
RegularMovieIsAvailableFor

Admin
UserOlder14Years
NewReleaseWith18RestrictionIsNotAvailableFor
UserYounger14Years
<ClassName> Should
<ClassName>Should

<Assert>
AuthenticationServiceShould
StoreLoggedInUserName
LoginPageShould
RedirectToDefaultPage
DefaultPageShould
ShowSalesReportToAdmin
<Act>_<Arrange>_<Assert>
<ClassName>Tests

<Act>_<Arrange>_<Assert>
DefaultPageTests

LoadMovies_Admin_ShowAll
LoadMovies_UserElder18_ShowAll
LoadMovies_UserYonger18_ShowNewReleases
Упражнение. Переименуйте тесты
СТРУКТУРА ТЕСТА
Arrange Act Assert
Упражнение. Структурируйте тесты AAA
DSL
Игра «Жизнь»




























































Тест, который трудно понять
Тест, который легко понять









Так пишите так!
Упражнение. Придумайте DSL
из разных доменов
STUB, FAKE, SPY, MOCK
Упражнение. Fake It

Session
Response.Redirect
XML файл
Упражнение. Новое требование

Отправить отчет по email
ТЕСТЫ НА ПОВЕДЕНИЕ
И СОСТОЯНИЕ
Тест на поведение
Упражнение. Тест на поведение
и на состояние

Перетащить StatementFormatter
Отправить отформатированный
отчет по email
Написать тест на поведение
Написать тест на состояние
ХОРОШИЙ ТЕСТ
МУТНЫЕ ТЕСТЫ
Мутные тесты
Запахи тестов
Assert.AreEqual(1, collection.Count)
StringAssert.Contains
CollectionAssert.Contains
Assert.WasCalled
Много сломанных тестов
после рефакторинга
Медленные тесты
ИНТЕГРАЦИОННЫЙ ТЕСТ
Интеграционные тесты
АВТОМАТИЧЕСКИЙ
ПРИЕМОЧНЫЙ ТЕСТ
SpecFlow
ПИРАМИДА
ТЕСТИРОВАНИЯ
Чему мы научились
Зачем тестировать?
Структура теста
Именование
DSL
Stub, Fake, Spy, Mock
Тесты на поведение и состояние
Хороший тест
Пирамида тестирования
Домашнее задание
Придумать DSL для вашего проекта
Книги
Ссылки
Roy Osherove “The art of unit testing” http://artofunittesting.com/
Вопросы?
Контакты

http://get.cardmone.net

Weitere ähnliche Inhalte

Andere mochten auch

Mercadão
MercadãoMercadão
Mercadão
Joca20
 
Diapos leon xiii
Diapos leon xiiiDiapos leon xiii
Diapos leon xiii
pattyrios
 
44646 guia de atividades
44646 guia de atividades44646 guia de atividades
44646 guia de atividades
VanlisaPinheiro
 
Vivamos una cultura de paz.
Vivamos una cultura de paz.Vivamos una cultura de paz.
Vivamos una cultura de paz.
jimenavences
 

Andere mochten auch (19)

TDD
TDDTDD
TDD
 
Mesopotâmia
MesopotâmiaMesopotâmia
Mesopotâmia
 
Pr classwork
Pr classworkPr classwork
Pr classwork
 
Importancia de cuidar los sentidos
Importancia de cuidar los sentidos Importancia de cuidar los sentidos
Importancia de cuidar los sentidos
 
Inteligencia Emocional
Inteligencia Emocional Inteligencia Emocional
Inteligencia Emocional
 
Tritium isotope separation
Tritium isotope separation Tritium isotope separation
Tritium isotope separation
 
Presentación1
Presentación1Presentación1
Presentación1
 
Presentacion videos 2 3 4 modulo 1
Presentacion videos 2 3 4 modulo 1Presentacion videos 2 3 4 modulo 1
Presentacion videos 2 3 4 modulo 1
 
Mercadão
MercadãoMercadão
Mercadão
 
Prévia do seminário
Prévia do seminárioPrévia do seminário
Prévia do seminário
 
Diapos leon xiii
Diapos leon xiiiDiapos leon xiii
Diapos leon xiii
 
En caso de incendio, personal
En caso de incendio, personalEn caso de incendio, personal
En caso de incendio, personal
 
Sandro nuñez
Sandro nuñezSandro nuñez
Sandro nuñez
 
Princípios do Código de Ética em Português - Revisado
Princípios do Código de Ética em Português - RevisadoPrincípios do Código de Ética em Português - Revisado
Princípios do Código de Ética em Português - Revisado
 
Presépio da notre dame
Presépio da notre damePresépio da notre dame
Presépio da notre dame
 
Accomplishments at HP
Accomplishments at HPAccomplishments at HP
Accomplishments at HP
 
44646 guia de atividades
44646 guia de atividades44646 guia de atividades
44646 guia de atividades
 
Vivamos una cultura de paz.
Vivamos una cultura de paz.Vivamos una cultura de paz.
Vivamos una cultura de paz.
 
1ºdomingo advento14b DEIXAR-SE MOLDAR. SOMOS BARRO, DEUS É O OLEIRO
1ºdomingo advento14b DEIXAR-SE MOLDAR.  SOMOS BARRO, DEUS É O OLEIRO1ºdomingo advento14b DEIXAR-SE MOLDAR.  SOMOS BARRO, DEUS É O OLEIRO
1ºdomingo advento14b DEIXAR-SE MOLDAR. SOMOS BARRO, DEUS É O OLEIRO
 

Kürzlich hochgeladen

CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 

Kürzlich hochgeladen (9)

CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 

Юнит Тестирование