Last time I looked for a framework was at the end of 2009, now I want to use BDD and I find out there are about 7 frameworks for BDD in .NET, I was wondering if, based on someone's experience, which one is the most mature?
SpecFlow is emerging as one of the better .NET BDD tools, it's true, and MSpec is great at a unit level though I haven't found much benefit over NUnit, given the non-technical nature of the audience.
Seriously, though - BDD isn't about the tools. If you want to get started, focus on the conversations around scenarios first. This is where the big wins in BDD happen - when conversations start generating understanding and more ideas for how to solve the problem and deliver the real value of the project. If your business stakeholders would like to be more involved based on those conversations, that's a great point at which to get started with English-language BDD tools. Otherwise, recognize that those tools introduce another layer of abstraction, together with the difficulty of refactoring English, working out which steps are no longer used, etc. BDD tools introduce another layer of complexity to scenario automation, which is already tricky.
If you're just looking to learn more about how BDD frameworks hang together, rather than using them on an enterprise project, then go for it.
As an alternative, you can capture the scenarios in a little custom DSL, and do everything you need to in plain old NUnit. I'm one of the original JBehave devs and I still wouldn't automatically make the jump to JBehave without a good reason and plenty of stakeholder engagement. It's easy to move to English-language BDD tools later once (if!) it becomes the most useful thing to do.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With