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

309 views
226 views

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
309
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

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

  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

×