BDD Training

Update: This training is now available as a public course, starting October 8th in London. Would you like to learn how Behaviour-Driven Development can help your company get better at software development? I’ve helped several teams learn BDD, and I’ve started to formalise the training I’ve been doing into a set of course modules. The […]

Fixing my testing workflow

Okay I’m bored of this. I need to talk about it. I love to use Ruby, RSpec, Cucumber and Rails to do test-driven development, but my tools for running tests are just infuriatingly dumb. Here’s what I want: When a test fails, it should be kept on a list until it has been seen to […]

Cucumber: Why Bother?

It’s perfectly possible to write automated acceptance tests without using Cucumber. You can just write them in pure Ruby. Take this test for withdrawing cash from an ATM: Scenario: Attempt withdrawal using stolen card Given I have $100 in my account But my card is invalid When I request $50 Then my card should not […]

Outside-In vs Inside Out – Comparing TDD Approaches

At last month’s ScotRUG Brian Swan and I attempted to solve the TDD Avatars problem as a live recital in our chosen style. We each had 35 minutes. The videos are here: Brian’s Inside-Out TDD approach Matt’s Outside-In approach When Brian had walked us through his approach and solution at the last month’s meeting, he’d […]

Acceptance Tests Trump Unit Tests

At work, we have been practising something approximating Acceptance Test Driven Development now for several months. This means that pretty much every feature of the system that a user would expect to be there, has an automated test to ensure that it really is. It has given me a whole new perspective on the value […]

Story Driven Development – Just Another *DD?

Bryan Helmkamp, who maintains the handy little library webrat, did a talk recently at GoRuCo 2008 which explains his experiences using RSpec plain-text stories to build ruby-on-rails applications in a manner he calls ‘Story Driven Development’: Before code is written, the team produces executable scenarios for a user story.

Behaviour-Driving Routes in Rails with RSpec

One thing that isn’t documented very well for RSpec is how to test your routes. I came across an old post on the rspec mailing list which described a great way to do this: describe TasksController “routing” do it “should route POST request for /tasks to the ‘create’ action” do params_from(:post, “/tasks”).should == {:controller =>; […]

Awesome Acceptance Testing

My notes on DanNorth and JoeWalnes‘ session at Spa 2008. Five artefacts: Automation – the glue that binds the tests to the code Vocabulary – the language that the tests are expressed in Syntax – the technology that the tests are expressed in (C#, Java) Intent – the actual scenario being tested Harness – the […]