Ik geef vaak de voorkeur aan veelgebruikte, ruim
ondersteunde tools. Soms komt dat echter niet uit. Zo kwam ik de afgelopen tijd
in aanraking met Reqnroll. Een BDD testframework gericht op een .NET omgeving,
dat de opvolger moet zijn van het meer gebruikte SpecFlow,. Ik wil jullie
meenemen in mijn ervaringen, zowel met het testframework, als met de zoektocht
naar kennis.
Alles begon met de zoektocht naar kennis. Veel cursussen
zijn er niet echt beschikbaar. En het probleem wat ik vaak heb met open source
tools: ik snap de documentatie vaak niet genoeg om hiermee te starten. Documentatie
van open source tools zijn in mijn ogen best geschikt als naslagwerk, maar niet
om je een tool te leren. De informatie is regelmatig kort door de bocht en/of vanuit
meer technisch perspectief beschreven.
Gelukkig is YouTube hierbij een uitkomst. Het moet wel heel
nieuw zijn, wil je er geen hulp over kunnen krijgen op YouTube. En ook voor
Reqnroll vond ik hier de oplossing:
https://www.youtube.com/playlist?list=PL6tu16kXT9PpqWrAYzhnlulMTKU2aP58P
Ik volg graag een cursus om een tool te leren. Toch heeft dit ook zeker
nadelen. De basis is meestal wel gelijk, maar voor de wat meer advanced lessen
moet de cursus maar net bieden wat je zoekt. Deze cursus bood bijvoorbeeld de verschillende
mogelijkheden voor data driven testen die ik zocht. Maar hoe je de input in de
Given/When/Then statements kan configureren was voor mij niet voldoende. Ik
weet dat er meer opties zijn, dan in de cursus getoond. En eigenlijk wil ik er
ook meer.
Wat voor mij een voordeel was: ik zocht voornamelijk simpel
gebruik. Gewoon een Given/When/Then formaat, vooral met tekst en getallen als
invoer. Dit maakte het makkelijker om met een nieuw tool te beginnen, omdat ik
niet veel kennis nodig had om een start te
maken. Gezien het feit dat ik al met Cucumber heb gewerkt, was de basis
van Reqnroll voor mij geen probleem. De structuur is eigenlijk gelijk: aan de
ene kant de BDD test in tekst, aan de andere kant de implementatie van de
stappen.
Misschien is het ook daarom dat ik de soms wat negatieve
kijk op Reqnroll, die ik online las, niet deel. Het kan ook zijn dat dit BDD
framework zich verder ontwikkeld heeft. Als basis vind ik het een fijn
framework om mee te werken. Ja, ik heb wat andere voorkeuren. Zo wil ik vrijer
zijn in de keuze tussen Given/When/Then. Ik wil een zin als “Given I login with
username and password” ook kunnen gebruiken als “When I login with username and
password”. Dit is echter niet mogelijk zonder voor dezelfde implementatie zowel
een aparte “Given” als een aparte “When”-ingang te definiëren. En ik moet erg wennen
aan de “” die ik moet toevoegen bij strings, om het matchen met de juiste implementatie
van de stap goed te laten werken. Omdat strings de enige datatypen zijn die
expliciet met quotes moeten worden vastgelegd, betrapte ik mezelf er regelmatig
op dat ik dit vergat. Maar beiden zijn geen overkomelijk probleem.
Reqnroll biedt goede mogelijkheden voor varianten in zinnen.
Je kan aan een implementatie meerdere matchende zinnen meegeven, zolang de variabelen
maar gelijk blijven. Ook vind ik dat, als je een foutje maakt, de foutmeldingen
duidelijk zijn. Als laatste zijn de data driven test mogelijkheden voor mij in
ieder geval voldoende. Het biedt zowel per stap als voor de gehele testcase de
mogelijkheid om data via tabellen mee te geven.
Ik ben nog steeds op zoek naar mogelijkheden om meer te
leren. Mijn verwachting is dat dat wel gaat lukken. Nu ik meer weet, is de officiële
documentatie van Reqnroll ook beter bruikbaar. En ik heb goede hoop dat meer
cursussen zich snel zullen gaan aanbieden. Maar met wat ik nu weet kan ik ook
al goed uit te voeten.