Your SlideShare is downloading. ×

Tdd in php a brief example

2,373

Published on

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
2,373
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
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. 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 Przemysław Bielicki's TDD video tutorial at Agile Software Development. - http://bit.ly/byDZOA
  • 42. Thanks!
      [email_address] @JeremyKendall http://jeremykendall.net

×