I first learned about Specflow and Behaviour Driven Development in 2018 in a blog that Wael Hamze posted. In his blog, Wael explains not only what Behaviour Driven Development and Specflow is but also how it could be used with Fake-xrm-easy (Jordi Montana’s Unit Testing framework) as well as Easy Repro, an open framework that extends Selenium for User Interface testing. What I read intrigued me enough to dig further…
To understand what Specflow is and why it’s so useful, It’s necessary to first understand what is Behaviour Driven Development.
Behaviour Driven Development (BDD) extends Test Driven Development, enabling the project team which includes business users to collaborate on the expected behaviour of an application.
Within behaviour driven development, the user story and acceptance criteria are verified by the business and then used to generate test cases. The acceptance criteria must be written in a formalised way using a Given/When/Then structure.
Neil Benson has done a really amazing video about behaviour driven development which you can watch here if you want to learn more about it.
Specflow uses the defined acceptance criteria to create executable code which can be extended with a preferred testing frameword such as FakeXrm or easyRepro.
The video below shows how SpecFlow can be leveraged for UI testing for Dynamics 365 projects using Easy Repro.
Edited to also point to the video mentioned above: