0
UNIT TESTING
Дмитрий Павлов
Александр Андронов
Контакты

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

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

6. Mock, Stub, Fake, Spy
...
WHY TEST?

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

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

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

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

http://martinvalasek.com/blog/pictur...
ИМЕНОВАНИЕ
When…
When<Action>

<Arrange><Assert>
WhenAuthorizeUser
AdminCanLogin
HackerCanNotLogin

WhenLoadMovies
AdminCanSeeAllMovi...
<Arrange>… <Assert>
<Arrange>

<Assert>
RegularMovieWith18RateIs

RestrictedForUser
AvailableForAdmin
SeriesMovieWith18Rat...
<Assert>… <Arrange>
<Assert>

<Arrange>
RegularMovieIsAvailableFor

Admin
UserOlder14Years
NewReleaseWith18RestrictionIsNo...
<ClassName> Should
<ClassName>Should

<Assert>
AuthenticationServiceShould
StoreLoggedInUserName
LoginPageShould
RedirectT...
<Act>_<Arrange>_<Assert>
<ClassName>Tests

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

LoadMovies_Admin_ShowAll
LoadMovies_...
Упражнение. Переименуйте тесты
СТРУКТУРА ТЕСТА
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
Юнит Тестирование
Upcoming SlideShare
Loading in...5
×

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

159

Published on

Материалы второго дня тренинга "Refactoring. Unit Testing. TDD", который проводился 11 Декабря 2013 г. в Нижнем Новгороде

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
159
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Юнит Тестирование"

  1. 1. UNIT TESTING Дмитрий Павлов Александр Андронов
  2. 2. Контакты http://get.cardmone.net
  3. 3. Правила Перерывы Жест Никаких мобил Ноуты только на упражнениях Парковка
  4. 4. Проверка домашней работы
  5. 5. План 1. Зачем тестировать? 2. Структура теста 3. Assert first 4. Именование (3 подхода) 5. DSL 6. Mock, Stub, Fake, Spy 7. Тесты на поведение и состояние 8. Хороший тест 9. Интеграционный тест 10. Автоматический приемочный тест 11. SpecFlow 12. Пирамида тестирования
  6. 6. WHY TEST? Зачем тестировать?
  7. 7. FEAR Страх
  8. 8. Другой парень THE OTHER GUY
  9. 9. Обратная связь FEEDBACK
  10. 10. Польза от тестов Когда интерн заявляет «Тесты для тех, кто не умеет программировать» http://martinvalasek.com/blog/pictures-from-a-developers-life-part-2
  11. 11. ИМЕНОВАНИЕ
  12. 12. When… When<Action> <Arrange><Assert> WhenAuthorizeUser AdminCanLogin HackerCanNotLogin WhenLoadMovies AdminCanSeeAllMovies ChildrenMustNotNotSeeRestrictedMovies
  13. 13. <Arrange>… <Assert> <Arrange> <Assert> RegularMovieWith18RateIs RestrictedForUser AvailableForAdmin SeriesMovieWith18RateIs AvailableForChild AvailableForAdmin
  14. 14. <Assert>… <Arrange> <Assert> <Arrange> RegularMovieIsAvailableFor Admin UserOlder14Years NewReleaseWith18RestrictionIsNotAvailableFor UserYounger14Years
  15. 15. <ClassName> Should <ClassName>Should <Assert> AuthenticationServiceShould StoreLoggedInUserName LoginPageShould RedirectToDefaultPage DefaultPageShould ShowSalesReportToAdmin
  16. 16. <Act>_<Arrange>_<Assert> <ClassName>Tests <Act>_<Arrange>_<Assert> DefaultPageTests LoadMovies_Admin_ShowAll LoadMovies_UserElder18_ShowAll LoadMovies_UserYonger18_ShowNewReleases
  17. 17. Упражнение. Переименуйте тесты
  18. 18. СТРУКТУРА ТЕСТА
  19. 19. Arrange Act Assert
  20. 20. Упражнение. Структурируйте тесты AAA
  21. 21. DSL
  22. 22. Игра «Жизнь»                                  
  23. 23. Тест, который трудно понять
  24. 24. Тест, который легко понять     
  25. 25. Так пишите так!
  26. 26. Упражнение. Придумайте DSL из разных доменов
  27. 27. STUB, FAKE, SPY, MOCK
  28. 28. Упражнение. Fake It Session Response.Redirect XML файл
  29. 29. Упражнение. Новое требование Отправить отчет по email
  30. 30. ТЕСТЫ НА ПОВЕДЕНИЕ И СОСТОЯНИЕ
  31. 31. Тест на поведение
  32. 32. Упражнение. Тест на поведение и на состояние Перетащить StatementFormatter Отправить отформатированный отчет по email Написать тест на поведение Написать тест на состояние
  33. 33. ХОРОШИЙ ТЕСТ
  34. 34. МУТНЫЕ ТЕСТЫ
  35. 35. Мутные тесты
  36. 36. Запахи тестов Assert.AreEqual(1, collection.Count) StringAssert.Contains CollectionAssert.Contains Assert.WasCalled Много сломанных тестов после рефакторинга Медленные тесты
  37. 37. ИНТЕГРАЦИОННЫЙ ТЕСТ
  38. 38. Интеграционные тесты
  39. 39. АВТОМАТИЧЕСКИЙ ПРИЕМОЧНЫЙ ТЕСТ
  40. 40. SpecFlow
  41. 41. ПИРАМИДА ТЕСТИРОВАНИЯ
  42. 42. Чему мы научились Зачем тестировать? Структура теста Именование DSL Stub, Fake, Spy, Mock Тесты на поведение и состояние Хороший тест Пирамида тестирования
  43. 43. Домашнее задание Придумать DSL для вашего проекта
  44. 44. Книги
  45. 45. Ссылки Roy Osherove “The art of unit testing” http://artofunittesting.com/
  46. 46. Вопросы?
  47. 47. Контакты http://get.cardmone.net
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×