Юнит Тестирование
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

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

  • 292 views
Uploaded on

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
292
On Slideshare
292
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
6
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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