So as I’m sure you have guessed by my last bunch of posts, I’ve been hooked on Ruby and Rails development. The more I use it, the more I love it. I felt I was loving it a bit too much, so decided to divert my attention back to ASP.NET MVC for a while. While developing with Rails, I was practicing BDD with Cucumber. I felt that Cucumber scenarios (written Gherkin) were far more useful for the majority of my testing on a web application. Sure unit tests are worthwhile for bits of code, but I’ve found that they don’t always make sense when testing a web application (like Steve Sanderson has mentioned). Some may argue that these tests are brittle, but honestly, I feel it defines my application better and it definitely tests the actual interactions better. I’m fully on board for unit tests for complex processes, but the majority of web work just isn’t that complex.
I’m not going to go fully into what BDD is here, but my goal was to use a similar process when developing ASP.NET MVC applications as I did in Rails. With Rails, it’s simple, Rails, Cucumber, Pickle, ActiveRecord, Factory Girl, Webrat, etc. work perfectly together. In the .NET world, there are options, but nothing that really fit together as nicely. I started with just wanting to test my basic application (menus, breadcrumbs, etc) and didn’t venture into model work yet, so I figured it would be as simple and efficient as it is in Rails. Not so much. I tweeted about this exact thing a while ago. More...