Naar aanleiding van mijn opmerking in het boekentopic hier een topic over Test Driven Development (TDD) in de praktijk.
Het principe van TDD is dat je de volgende stappen herhalend doet totdat je programma af is:
Mijn bezwaren zijn:
Hoe doe ik het dan wel? (als de werkgever het goed vindt; ik heb bij verschillenden "wij doen niet aan unit-tests" gehoord)
Het principe van TDD is dat je de volgende stappen herhalend doet totdat je programma af is:
- Je schrijft 1 kleine unit-test die faalt
- Je schrijft code zodat die test en de rest slagen
- Je maakt de code mooier
Mijn bezwaren zijn:
- Het gaat verschrikkelijk traag. De hele tijd switch je tussen test-code en echte code.
- Stap 3 versloft. Op een gegeven moment ga je echt niet meer steeds je hele code herstructureren. Je krijgt uiteindelijk bagger code. Als je stap 3 wel trouw doet, gaat het nog trager.
- Je vergeet veel te testen (bv boundary cases).
Hoe doe ik het dan wel? (als de werkgever het goed vindt; ik heb bij verschillenden "wij doen niet aan unit-tests" gehoord)
- Je maakt een aantal unit-tests met functionaliteit die je wilt hebben; het liefst een hele klasse in 1 keer.
- Je implementeert die functionaliteit zo mooi mogelijk.
- Je maakt tests voor de boundary cases.