• Save
Test-Driven Development for TYPO3 @ T3CON12DE
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Test-Driven Development for TYPO3 @ T3CON12DE

  • 669 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
No Downloads

Views

Total Views
669
On Slideshare
669
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
2

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
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Transcript

  • 1. Test-DrivenDevelopment for TYPO3 Oliver Klee, 2012-10-04 typo3-coding@oliverklee.de
  • 2. Unittests?
  • 3. Manual testing is cumbersome
  • 4. Automatedtesting isfast
  • 5. Unit tests for the Realty Manager extension
  • 6. more than1600 tests
  • 7. in less than 60 seconds
  • 8. Verify that your codedoes what you expect
  • 9. Make sure that yourchanges won‘t break anything
  • 10. Keep other codersfrom breaking your code
  • 11. Don‘t break anythingeven in complex projects
  • 12. Create asafety net for refactoring
  • 13. Green feels good!
  • 14. Green feels good!
  • 15. Know your tools
  • 16. The phpunit extension has it all
  • 17. The phpunit extension has it allphpunit (TYPO3 extension)
  • 18. The phpunit extension has it allphpunit (TYPO3 extension) PHPUnit (PEAR package)
  • 19. The phpunit extension has it allphpunit (TYPO3 extension) PHPUnit (PEAR package) Testrunner (back-end- module)
  • 20. The phpunit extension has it allphpunit (TYPO3 extension) PHPUnit (PEAR package) Testrunner Testrunner (back-end- module) (CLI module)
  • 21. The phpunit extension has it allphpunit (TYPO3 extension) PHPUnit (PEAR package) Testing framework for FE & DB Testrunner Testrunner (back-end- module) (CLI module)
  • 22. Let‘s getsome terms straight
  • 23. Two testsmeet in a bar ...
  • 24. Two testsTest meet in a bar ...
  • 25. Two tests Test meet in aAssertion bar ...
  • 26. Two tests Test meet in aAssertion bar ... Test Test
  • 27. Two tests Test meet in aAssertion bar ... Test TestTest case
  • 28. Two tests Test meet in aAssertion bar ... Test TestTest caseTest case
  • 29. Two tests Test meet in aAssertion bar ... Test TestTest caseTest caseTest suite
  • 30. The life cycle unit test of a
  • 31. The life cycle unit test of a
  • 32. The life cycle unit test of a new FooTest();
  • 33. The life cycle unit test of a new FooTest();
  • 34. The life cycle unit test of a new FooTest(); setUp();
  • 35. The life cycle unit test of a new FooTest(); setUp(); /** @test */ lifeIsGood();
  • 36. The life cycle unit test of a new FooTest(); setUp(); /** @test */ lifeIsGood();
  • 37. The life cycle unit test of a new FooTest(); setUp(); /** @test */ lifeIsGood(); tearDown();
  • 38. The life cycle unit test of a new FooTest(); setUp(); /** @test */ lifeIsGood(); tearDown();
  • 39. The life cycle unit test of a new FooTest(); setUp(); /** @test */ lifeIsGood(); tearDown();
  • 40. Code test-first
  • 41. Code test-first
  • 42. Code test-firstwritetest
  • 43. Code test-firstwritetest
  • 44. Code test-firstwrite writetest code
  • 45. Code test-firstwrite writetest code
  • 46. Code test-firstwrite writetest code
  • 47. Code test-firstwrite writetest code refactor
  • 48. Code test-firstwrite writetest code refactor
  • 49. Use meaningful unit test names
  • 50. Use meaningful unit test namesName thebehavior. classCanBeInstantiated
  • 51. Use meaningful unit test names Name the behavior. classCanBeInstantiatedMention the method. setTitleSetsTitle
  • 52. Use meaningful unit test names Name the behavior. classCanBeInstantiatedMention the method. setTitleSetsTitle Name the setSizeWithZeroThrowsExceptionpreconditions. hasTitleForEmptyTitleReturnsFalse
  • 53. Use meaningful unit test names Name the behavior. classCanBeInstantiatedMention the method. setTitleSetsTitle Name the setSizeWithZeroThrowsExceptionpreconditions. hasTitleForEmptyTitleReturnsFalse Dont‘t use "works" or "correctly".
  • 54. Use meaningful unit test names Name the behavior. classCanBeInstantiatedMention the method. setTitleSetsTitle Name the setSizeWithZeroThrowsExceptionpreconditions. hasTitleForEmptyTitleReturnsFalse Dont‘t use "works" or measureFrubbleWorksCorrectly "correctly".
  • 55. Use meaningful unit test names Name the behavior. classCanBeInstantiatedMention the method. setTitleSetsTitle Name the setSizeWithZeroThrowsExceptionpreconditions. hasTitleForEmptyTitleReturnsFalse Dont‘t use "works" or measureFrubbleWorksCorrectly "correctly".