tdd in php a brief example

Download Tdd in php   a brief example

If you can't read please download the document

Upload: jeremy-kendall

Post on 18-May-2015

2.379 views

Category:

Technology


1 download

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