tdd in php a brief example
TRANSCRIPT
- 1. TDD in PHP:A Brief Example
2. About Me Jeremy Kendall PHP Developer since 2001 Organizer Memphis PHP Contributor to FRAPI project (getfrapi.com) [email_address] @JeremyKendall http://jeremykendall.net 3. TDD in PHP: A Brief Example Test Driven Development, you say? 4. Frankly, my dear . . . 5. Why You Should Give A Damn
- Test Driven Development is perhaps one of the best and fastest ways to improve your understanding and command of object-oriented principles and best practices.
6. What is TDD?
- From Wikipedia:
7. Test Driven Development (TDD)is a software development process that relies on the repetition of a very short development cycle. . . 8. TDD Development Process
- Write a test
9. Run all tests, watch new test fail 10. Write just enough code to make the test pass 11. Run all tests, watch new test pass 12. Lather, rinse, repeat . . . 13. Refactor 14. TDD: The Benefits
- High cohesion, loose coupling
15. Confidence 16. Faster time to resolution 17. Documentation 18. TDD: The Drawbacks
- Tests only cover what you think should be tested
19. False sense of confidence 20. Without management and team buy-in, TDD is DOA 21. TDD: Live Code Example
- Live Coding?Really?Why?
22. TDD: Live Code Example
- Code example will test a integer calculator for a fictional Math Tutor application
23. Requirements
- Will add one integer to another
24. Throws exceptions in the following cases:
- Non-integer arguments provided
25. Integer overflow 26. Integer underflow 27. TDD: Live Code Example
- We'll be using PHPUnit
28. PHPUnit will be configured with phpunit.xml 29. phpunit.xml:
- Calls bootstrap.php
30. Tells PHPUnit where to look for our tests 31. Code coverage and testdox reports bootstrap.php:
- Adds our library to the include path
32. Registers a simple autoloader 33. TDD: Live Code Example
- Design Decisions
- PEAR naming convention
34. Interface, not implementation 35. Interface: Tutor_Calculator_Interface 36. Implementation: Tutor_Calculator_IntegerCalculator 37. LET'S GET IT ON! 38. Resources
- Test Driven Development at Wikipedia -http://bit.ly/9Aa3Xr
39. PHPUnit -http://www.phpunit.de/ 40. Xdebug - http://www.xdebug.org/ 41. The code example in this presentation was adapted for PHP from Przemysaw Bielicki's TDD video tutorial at Agile Software Development. -http://bit.ly/byDZOA 42. Thanks!
- [email_address] @JeremyKendall http://jeremykendall.net