Tdd in php a brief example

  • 2,251 views
Uploaded on

 

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
2,251
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
11
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