Testing

Mijn doel voor dit project was een 100% testscore. Nou weet ik dat dat vrijwel onmogelijk is, maar het is een goed streven en ik ben benieuwd hoe ver ik uiteindelijk gekomen ben. Om dit doel te behalen heb ik de volgende technieken toegepast:

Opzet van de tests

In het vorige project heb ik nested tests gebruikt en wilde dat heel graag ook gebruiken in dit project. Het geeft in mijn optiek een duidelijk overzicht van de tests die je aan het draaien bent. Enige wat ik wel lastig vond was de volgorde van de testen. Ik had de tests geschreven in de volgorde CRUD, maar deze werden gedraaid in omgekeerde volgorde: DURC. Dat heb ik uiteindelijk op kunnen lossen door @TestClassOrder(ClassOrderer.OrderAnnotation.class) te gebruiken.

img.png

Spy

Ik wilde graag een spy gebruiken in een van mijn tests. Een Spy maakt een object aan en kijkt vervolgens hoe en of deze is aangeroepen.

Edge cases

Een van de belangrijke onderdelen van testen is de zogenoemde edge cases: testen waarbij wordt gekeken of de voorwaarden die zijn ingevuld ook de voorwaarden zijn die uit de tests naar voren komen. In het project zijn een aantal punten waarop ik dit heb kunnen testen: - Leeftijdsgrens: wordt deze helemaal goed doorgevoerd? - Matches: worden deze goed doorgevoerd? Wat als er een mutual match wordt aangemaakt? Gaat dat goed? - Afstand: kan dat geen min-getal worden?

Happy path

Tests gebeuren vaak met behulp van een happy-path. Dat wil zeggen eerst een test waarbij de standaard wordt getest en daarna de tests die testen op fouten. Denk daarbij aan bijvoorbeeld de minimale leeftijd die hoger is dan de maximale leeftijd.