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.


