The RSpec Book

Overview

RSpec is the original Behaviour Driven Development framework for Ruby.

The RSpec Book

The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends is now in beta.

The RSpec Book will introduce you to RSpec, Cucumber, and a number of other tools that make up the Ruby BDD family. Replete with tutorials and practical examples, the RSpec Book will help you get your BDD on, taking you from executable requirements to working software that is clean, well tested, well documented, flexible and highly maintainable.

Get Started

Start with a very simple example that expresses some basic desired behaviour.


# bowling_spec.rb
require bowling

describe Bowling do
it "should score 0 for gutter game" do
bowling = Bowling.new
20.times { bowling.hit(0) }
bowling.score.should == 0
end
end



Run the example and watch it fail.

$ spec bowling_spec.rb 
./bowling_spec.rb:4:
  uninitialized constant Bowling

Now write just enough code to make it pass.


# bowling.rb
class Bowling
def hit(pins)
end

def score
0
end
end


Run the example and bask in the joy that is green.

$ spec bowling_spec.rb --format specdoc

Bowling
- should score 0 for gutter game

Finished in 0.007534 seconds

1 example, 0 failures

Take very small steps

Don’t rush ahead with more code. Instead, add another example and let it guide you to what you have to do next. And don’t forget to take time to refactor your code before it gets messy. You should keep your code clean at every step of the way.

Take the first step now!

$ gem install rspec

(See special installation instructions for Spec::Rails)