On this day, 6 years ago I started to work on a Cucumber-like BDD framework for .NET, so 10th September is the birthday of SpecFlow, if open-source projects have such. Six years are a long time and many things have happened, but I don’t want to go through this in this post. I don’t want to write too much about the last year, either, where we started to work on SpecFlow v2, but we still could not release it.
The big news is that this summer I decided to change the way I work and try to dedicate much more of my time to SpecFlow and BDD as an independent consultant/coach/trainer/coder.
On the bases of feedback and issues, a lot of SpecFlow users seem to try to put step definitions and other binding codes to base classes. I’ll try to explain why inheritance doesn’t fit to the concept of global step definitions used by SpecFlow.
We were always told to clean up after ourselves when we were children, this is also what I teach to my daughters. Probably due to this, when writing the first integration tests that inserts data to a database, devs cleanup (or reset) the database after the test has been executed (with an [AfterScenario] SpecFlow hook, for example). In reality, however, it is much more practical to do the cleanup before the scenario execution.