My first commit to Cucumber was in 2008. Since then I've poured countless hours into the project and the community around it, whether directly as commits to the code, or answering questions on this mailing list, or writing blog articles. I am independent, so those hours have all been done on my own time.
Why do I do that?
It's a complicated question. My consulting business is built around BDD, so I have a vested interest in the success of theproject. It's …
When I talk to people about adopting BDD, the most frequent objection I hear is that it must take longer. This is true, in a sense, because it does take longer for a change to get to the stage where a developer is done with it. If you're used to burning toast you'll find this frustrating, because you don't realise yet that the time and effort you're putting in to write the tests up-front won't pay off until later, when you hand the change to your testers and they can't …
This is the single most powerful behavioural shift I have seen in teams adopting BDD. Simply by getting the business users, the analysts, the testers and the developers to adopt this vocabulary of "given/when/then", they discover that a world of ambiguity falls away.
§ Top 10 Weird APIs , serving your facts, making fake calls, and …
I made a presentation on Refactoring & BDD atback on 10/09/2012. I put my slides and notes from the presentation up on Deck.
Some quick takeaways ...
The less your problem is understood, the more complicated your solution is likely to be. This is one of the reasons why we refactor code - we increase our understanding of the problem domain and increase our abilities to apply solutions to the domain as time goes by.
After I left Object Mentor, RSpec was part of my day to day work on Ruby applications, but most of my work on its maintenance moved to my spare time. This was fine at first, as I had the support of employers and family, but I found myself doing less and less of pretty much everything else that I enjoy and learn from.
require 'minitest/spec' describe Meme do before do @ meme = Meme. new end describe "when asked about cheeseburgers" do it "should respond positively" do @ meme . i_can_has_cheezburger ?. must_equal "OHAI!" end end describe "when asked about blending possibilities" do it "won't say no" do @ meme . does_it_blend ?. wont_match / ^no / i end end end
I'm excited to be presenting on Behavior-Driven Objects at the Agile conference website : One of the original ideas behind BDD was that testing should be about behavior at all levels. Effectively, all automated tests can be viewed as "functional tests" of entry points, be they user facing or internal, crossing procedural boundaries or not. In this talk we'll explore approaches …& BDD eXchange in on Monday, October 1st (details below). From the
§ BDD meets Pre-emptive commit comments :
Rule #1: write commit comments before coding
Rule #2: write what the software should be supposed to do, not what you did
§ Hall of Shame of Skeuomorphism . May you never have to work on an app that's featured there.
…runners available but Mocha is the most versatile and easiest to learn. It provides both BDD and TDD interface styles and can easily be integrated with continuous integration tools; it can also be used to test browser features. Mocha, however, does not come with an assertion library: for that you should check out one of my own modules - Chai. It provides several different assertion styles, an expansive set of core assertions, and can be extended with plugins. Chai also works for both …