Test Driven Development: Waarom tijd besteden aan het schrijven van tests
Test Driven Development of TDD beschrijft een werkwijze van het maken van unit tests voordat er code wordt geschreven.
Voordat we dieper op dit onderwerp ingaan laten we eerst eens zien wat de definitie is van unit testen. Dit vertelt wikipedia ons:
ââŠ, unit testing is a method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures, are tested to determine if they are fit for use.â- âIntuitively, one can view a unit as the smallest testable part of an applicationâ
Simpel gezegd komt dat dus neer op:
ââŠ, unit testing is testing the smallest testable part (of an application)â
Om het nog simpeler te zeggen: Unit testen gaat om het verifiëren van verwachtingen. En dat is alles. Met behulp van unit testen zorg je er dus voor dat je code doet wat je verwacht dat het moet doen.
Waarom unit tests schrijven
Zoals hierboven gezegd schrijven we tests zodat we kunnen controleren of de code doet wat het moet doen. Het voordeel van het schrijven van unit tests is dat het tijd scheelt tegenover het handmatig testen je code. Het kan uiteraard met de hand gedaan worden, maar bij uitgebreide applicaties is dit niet meer te doen.
Unit tests dienen niet als vervanging van het gewone testen, maar als een ondersteuning. Unit tests testen namelijk niet de werking van je applicatie, maar de werking van je code. Je applicatie kan nog steeds fouten bevatten terwijl alle unit tests in orde zijn.
Test Driven Development in de praktijk
Op internet zijn veel voorbeelden te vinden waarbij er telkens eerst alle tests worden geschreven om vervolgens pas de daarbij horende code te schrijven. Zo is TDD namelijk ook bedoelt. In de praktijk is het niet altijd wenselijk om voor elk gedeelte direct een unit test te hebben. Dit kan komen door meerdere redenen zoals tijd. Het is uiteindelijk wel wenselijk om een zo hoog mogelijke coverage te hebben van je unit tests. Hiermee zorg je er namelijk voor dat je code goed voorbereid is op uitbreidingen doordat deze maar één ding doet. Zie ons artikel over Object Oriëntated Design als je hier meer over wilt weten.
TDD Oefeningen
Op het internet zijn er veel oefeningen te vinden voor TDD. Dit zijn zogenaamde Coding Kataâs. Deze zijn er veel verschillende vormen en talen. Je kunt er een aantal vinden op de volgende websites: