Test-driven-Development mit TYPO3

610644ae9328059c33a272d08b90c75d?s=47 Oliver Klee
September 12, 2017

Test-driven-Development mit TYPO3

610644ae9328059c33a272d08b90c75d?s=128

Oliver Klee

September 12, 2017
Tweet

Transcript

  1. Test-driven- 
 Development
 mit TYPO3 Oliver Klee, 2017-09 @oliklee typo3-coding@oliverklee.de

  2. Unit- Tests?

  3. Manuelles Testen ist mühsam

  4. Automatisierte Tests sind schnell

  5. Unit-Tests für die
 Realty-Manager- TYPO3-Extension

  6. >1600 Tests

  7. < 60 Sekunden

  8. Sicher sein, dass der Code das Richtige tut

  9. Verhindern, dass deine Änderungen etwas anderes kaputt machen

  10. Verhindern, dass andere Leute deinen Code kaputtmachen

  11. Auch bei komplexen
 Projekten nichts
 kaputt machen

  12. Baue ein Sicherheitsnetz fürs Refactoring oder für
 TYPO3-Updates

  13. Verbessere die Struktur des Codes

  14. Grün fühlt sich gut an!

  15. None
  16. Lasst uns
 ein paar Begriffe
 klarstellen

  17. Die zwei Programmier-Modi sauber hacky

  18. Testsuite Testcase Test Assertion Test Test Testcase

  19. Lebenszyklus eines Tests new FooTest(); setUp(); /** @test */ lifeIsGood();

    tearDown();
  20. 4 Test-Phasen Setup (aufbauen) setUp()
 Code in der Testmethode Exercise

    (ausführen) Methodenaufruf Verify (prüfen) assert…() Teardown (abbauen) tearDown()
  21. Schreibe zuerst den Test Test
 schreiben Code
 schreiben refactoren

  22. None
  23. Test-Level http://filipdefar.com/2015/06/tested-be-thy-name.html

  24. Unit-Tests sind klein und schnell

  25. Integrationstests testen das Zusammenspiel von Komponenten in TYPO3:
 „Functional Tests“

  26. Systemtests testen das große Ganze

  27. Test-Typen

  28. Blackbox-Tests testen das nach außen Sichtbare

  29. Whitebox-Tests wie genau es innen funktioniert testen,

  30. Functional
 Tests

  31. Akzeptanztests

  32. Anti-
 Zombie-
 Tests-

  33. Regressionstests

  34. Smoketests

  35. Smoketests

  36. Story-Tests für Behavior-Driven Development (BDD)

  37. None
  38. Test- Namen

  39. Benutze aussagekräftige Test-Namen classCanBeInstantiated setTitleSetsTitle setSizeWithZeroThrowsException hasTitleForEmptyTitleReturnsFalse Benenne das Verhalten.

    Nenne die Vorbedingungen. Nenne die Methode. Benutze nicht „works“ oder „correctly“. measureFrubbleWorksCorrectly
  40. None
  41. Code-
 Kata

  42. None
  43. Kenne Werkzeuge deine

  44. TYPO3-Testing-Frameworks TYPO3 CMS PHPUnit PHP Fokus typo3/
 testing- framework 8.5.x-9.x

    6.2.x 7.0.x-7.1.x Core
 (Extensions) nimut/
 testing- framework 6.2.x-8.7.x
 (6.2.x-9.x) 4.8.x-5.7.x 5.3.x-7.1.x Extensions