AgileCamp'11 Новосибирск - Unit Tests

1,247 views
1,176 views

Published on

материал с конференции http://camp.agiledays.ru

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

  • Be the first to like this

No Downloads
Views
Total views
1,247
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

AgileCamp'11 Новосибирск - Unit Tests

  1. 1. Unit TestsAnton Katkov
  2. 2. Вопрос• Кто знаком с Unit Test’ами?
  3. 3. Основные понятия• Fixture• Test Case• Check• Test Suite
  4. 4. Цикл жизни Unit Test1. Set up fixture2. Execute test scenario3. Check that everything worked properly
  5. 5. Специфика Unit Test для XP• Нужен framework• Тестируется весь значимый код• Тесты хранятся в репозитории кода вместе с кодом• Код без тестов не считается завершённым• В случае обнаружение бага пишется тест, который обнаруживает его
  6. 6. Unit Test помогает …• Тестировать• Формализовать требования• Определиться с архитектурой• Писать код• Отлаживать код• Выпускать релизы• Оптимизировать
  7. 7. ТЕСТИРУЕМАЯ АРХИТЕКТУРА
  8. 8. Нетестируемая архитектура source: http://martinfowler.com/articles/injection.html
  9. 9. Тестируемая архитектура source: http://martinfowler.com/articles/injection.html
  10. 10. IoC и DI• Inversion of Control• Dependency Injection
  11. 11. Типы тестовых дублей• Dummy – никогда реально не используется;• Fake – содержит упрощённую реализацию;• Stubs – возвращает заготовленный ответ, иногда запоминает информацию по вызовам;• Mocks – объекты, с запрограммированным ожиданием определённых вызов к ним;
  12. 12. ЗАПАХИ ТЕСТОВ
  13. 13. Медленные тесты• Редко запускаются• Плохая изоляция
  14. 14. Хрупкие тесты• Плохое тестирование• Плохой дизайн
  15. 15. Тест-”спагетти”• You aren’t gonna need it (YAGNI)• Опять плохой дизайн• Тест много знает о классе
  16. 16. Эхо в горах• Одна ошибка– много сломаных тестов• Don’t repeat yourself (DRY)
  17. 17. Чрезмерное доверие мокам• Аккуратное использование моков• Использование интеграционных тестов
  18. 18. Недостаточное доверие мокам• Хрупкие медленные тесты с Эхо эффектом• Big setUp()• Правильное использования моков
  19. 19. ЗАКЛЮЧЕНИЕ
  20. 20. Связь с другими практиками• Коллективное владение кодом• Рефакторинг• Регулярные сборки
  21. 21. Часто можно слышать фразы• «У нас нет времени на тесты, поэтому мы их не пишем»• «Мы напишем тесты после того, как проект будет готов»

×