P2.1 - 13 September 2012

Updated format to include the version number for Kindle library.

P2.0 (Printing) - 17 May 2011

  • Second Printing

P1.0 (Printing) - 01 December 2010

  • First Printing

B16.0 - 27 October 2010

  • Final beta. This book is now going into typesetting and then to the printer.

B15.0 - 29 July 2010

This beta updates the rest of the book to RSpec 2 and Rails 3, with all of the examples working against rspec-2.0.0.beta.19 and the Rails 3 release candidate rails-3.0.0.rc.

This is the the final beta before we go into production.

The authors would all like to take this opportunity to thank you for all of the wonderful and helpful feedback we’ve gotten during this beta phase. You’ve all made this book much better than it ever could have been without your participation.

B14.0 - 23 July 2010

Shortly after we released beta 13, we made the rather ambitious decision to update the book for RSpec-2 and Rails-3, both of which were in progress, but months away from their respective releases. This is the first beta since that decision, and we’ve updated all of the chapters in Part I to work with the latest beta version of RSpec-2. As you’re reading, you can look at the page heading—-if it is red, the chapter has been updated, and if it is gray, it’s still the old chapter.

We’re working hard to get the rest of the book updated, so keep your eyes peeled over the coming weeks for two more beta releases. The first will update Part III to use RSpec-2, and the second will update Part V to use RSpec-2 and Rails-3.

In the meantime, the code download will be a bit of a mess—-it will contain some RSpec2 code and some of the older code. We thought for a long time about whether to delay this beta until it was all up to date, but decided in the end that you all had waited long enough—-now that RSpec 2 is out and Rails 3 is just around the corner, we wanted to get this new content to you as soon as we could.

B13.0 - 19 January 2010

This beta includes the final two chapters: Chapter 18, Intro to Cucumber, on page 263 and Chapter 19, Cucumber Detail, on page 281. The intro chapter presents a high level view of Cucumber and its role in a BDD project. The second chapter provides detailed information about how to connect plain text scenarios to code.

We also made some other significant changes. Based on feedback from beta readers, we’ve reworked the entire Codebreaker example. Even if you’ve already read it, you’ll want to read it again.

B12.0 - 03 December 2009

We’re very close to the end of beta now! In this release we fixed a number of errata and added a new chapter:

  • Revisiting the Design

This is the last chapter in the Codebreaker example. We look at new requirements that force us to revisit the design on a grander scale than in the previous chapters. The combination of Cucumber scenarios and RSpec code examples supports making big changes safely, and allows for the application and code-level behaviour to evolve independently of each other.

B11.0 - 28 October 2009

For this beta release we’ve addressed a lot of errata and edited all of the chapters in the Rails section, bringing them up to date with the latest Rails, RSpec, Cucumber, Selenium and Webrat.

B10.0 - 22 September 2009

This release sports more fixed errata and one new chapter: Automating the Browser with Webrat and Selenium

This new chapter shows you how to drive Cucumber scenarios right through your browser using Webrat and Selenium. You’ll type a single command and watch a browser fire up and walk through each scenario step by step right before your very eyes, and then see a standard Cucumber report in the shell. It’s a sight to behold, and a great way to drive out behaviour that requires JavaScript.

B9.0 - 30 August 2009

  • Writing Software that Matters Thanks to lots of good feedback, and further experience in the field, this chapter has been completely reworked to reflect the latest information about BDD.
  • Spec::Mocks We moved the Mock Objects chapter to Part III of the book and merged in content specific to RSpec’s Spec::Mocks framework, and renamed it for the framework it describes.

B8.0 - 17 July 2009

  • Chapter 8, Managing Complexity in Step Definitions, introduces a random generator to the Codebreaker game. This brings up several issues that can add complexity to Cucumber scenarios, RSpec code examples, and the code we’re driving out with the aid of these tools and the BDD process. We address these issues and offer strategies to manage the complexity they introduce.

B7.0 - 24 June 2009

Codebreaker: We’ve changed the name of the game in the tutorial in Part I to Codebreaker.

Update to latest gems: We’ve gone through the book and updated all the practical examples to the latest gem versions, which are:

• rspec-1.2.7 • rspec-rails-1.2.7 • cucumber-0.3.11 • webrat-0.4.4

While we plan to update the final print book to the latest versions of all of these gems at the time we go to print, we don’t anticipate any significant changes between now and then.

B6.0 - 16 June 2009

This release includes a number of fixed errata, two new chapters, and a bit of re-organization.

  • Hello: We added a new chapter with basic install instructions and basic Hello Cucumber and Hello RSpec examples.
  • Rails Models: Covers writing model specs, validations, associations, mocks, test data builders and more.
  • Automating Features with Cucumber: We split Chapter 3, Describing Features with Cucumber, into two chapters: Chapter 3, Describing Features with Cucumber and Chapter 4, Automating Features with Cucumber. This allowed us to expand the material on planning the first release and iteration in the first chapter, and keep the technical in the trenches material in the second. Even if you’ve already read through the tutorial in previous beta releases, you’re going to want to re-read these two chapters.

B5.0 - 18 May 2009

This release introduces two new chapters:

  • Writing Software that Matters: Having laid out the case for Behaviour Driven Development in Chapter 7, The Case for BDD, this new chapter explores the principles and strategies that BDD brings to the Agile table.
  • Mock Objects: One of the most complex and controversial topics in developer testing is that of Mock Objects. In Chapter 9, Mock Objects, we review some basic terminology and explore the underlying motivations for two essential tools in the BDD toolkit: test stubs and mock objects.

B4.0 - 13 April 2009

  • Chapter 23: Rails Controllers

Continuing inward on our outside-in journey, this chapter explores how (and when) to write controller specs. We also introduce approaches to dealing with some controller-specific spec’ing challenges like filters, global behaviour defined in ApplicationController, and sending email.

  • Chapter 15: Extending RSpec

This chapter introduces techniques for extending RSpec to cater to domain-specific needs. Covered topics include custom example group classes, custom matchers (including an exciting new matcher definition DSL), macros and custom formatters. Whether customizing RSpec for your own app, or in order to ship domain-specific spec’ing extensions with the libraries you’re releasing, this chapter is filled with really useful information that will help you make your specs easier to write and read.

B3.0 - 25 March 2009

Two new chapters:

  • 5: Evolving Existing Features
  • 6: The Case for BDD

B2.0 - 24 February 2009

  • Chapter 4 Evolving Requirements
  • Chapter 17 Simulating the Browser with Webrat
  • Chapter 19 Rails Views

B1.0 - 29 January 2009