small medium large xlarge

The latest version of the book is P1.0, released over 2 years ago. If you've bought a PDF of the book and would like to update it to this version (for free), visit your home page.

By default this page displays the errata for the latest version of the book. If you have a previous version, select it here:

If you've found a new error, please submit it.

  • Typo
  • Tech. error
  • Suggestion
  • Maybe next edition
  • Not a problem
  • Reported in: P1.0 (27-Aug-18)
PDF page: 1
05-unit-specs/07/expense_tracker/app/api.rb JSON.generate(​'error'​ => result.error_message) -----> JSON.generate(​'error_message'​ => result.error...more...
  • Reported in: P1.0 (15-Sep-17)
PDF page: 20
When running "rspec --profile 2" you display the result as "5 examples, 0 failures". But on the previous page (19), we haven't yet fixed the error for...more...
Myron Marston says: Great question! In the "Identifying Slow Examples" section you're referring to, we aren't intending to show what that's like when applied to the coffee example with a failing spec. Rather, we're showing off the --profile feature when running against the slow_spec.rb file shown in that section. That's why it shows "5 examples, 0 failures", since slow_spec.rb has 5 examples and they all pass. I'm glad you pointed this out, though, because it is a bit confusing. We'll plan to address this in the next edition by re-ordering the sections or including a better explanation in the text.
  • Reported in: P1.0 (01-Mar-19)
Paper page: 22
TextMate (TM) is another popular editor and will run xx_spec.rb files and give results. Also has shortcuts. Need to select RSpec in Preferences>Bundle...more...
  • Reported in: P1.0 (20-Feb-18)
Paper page: 50
mid page "you can include Ruby modules into and RSpec context" This could be made clearer by saying "into an RSpec context or describe block" as it i...more...
  • Reported in: P1.0 (09-Jan-18)
  • Fixed: 09-Jan-18, awaiting book release
Paper page: 53
Text reads "Ruby’s JSON library can safely parse simple a record like this into a Ruby hash:" Should this be: "Ruby’s JSON library can safely pa...more...
Myron Marston says: Yep! It's a typo. We'll fix it in the next edition. I'm going to close this as a duplicate of #82024.
  • Reported in: P1.0 (04-Sep-17)
PDF page: 53
"Ruby’s JSON library can safely parse simple a record like this one into a Ruby hash" "simple" and "a" are in the the wrong order. Should be ...more...
Myron Marston says: Thanks for reporting this! At this point, the book has been printed, so it's unfortunately too late for us to fix this typo. If there's a 2nd edition, we'll plan to include this fix (unless the section is entirely rewritten...).
  • Reported in: P1.0 (24-Mar-19)
Paper page: 79
Trying out the exercises and the first test wont work. Tried using the source code and this will not work either. I have updated the ledger class also...more...
  • Reported in: P1.0 (18-Apr-18)
Paper page: 96
The second test uses the same date as the first, which does have entries. Maybe add a note in the text to remind the reader that the database is clean...more...
  • Reported in: P1.0 (27-Oct-18)
Paper page: 101

The curl requests don't work. They return "Sequel::DatabaseError: SQLite3::SQLException: no such table: expenses".--Dmitry

  • Reported in: B6.0 (23-Jan-18)
  • Fixed: 24-Jan-18, awaiting book release
Paper page: 111
Code sample uses 'RSpec.configure do |rspec|; rspec.alias_example_group...' when it should match our code from previous chapters 'RSpec.configure do |...more...
Myron Marston says: The block variable can be called anything you want, and both `rspec` and `config` are fine names for the variable. Using a different variable name isn't an error here.
  • Reported in: P1.0 (28-Sep-17)
Paper page: 128

The phrase "but you can also also add helper" contains double "also".--Serguei Cambour

Myron Marston says: Good catch! We'll be sure to address this in the next edition.
  • Reported in: P1.0 (28-Dec-17)
  • Fixed: 24-Jan-18, awaiting book release
PDF page: 186
Paper page: 177
I'm not positive this is a mistake, but I would have thought this should say 'RSpec matchers...' as opposed to what it currently says, "RSpec expectat...more...
Myron Marston says: Either "matchers" or "expectations" are appropriate here. Matchers call `===` directly, and expectations contain a matcher, which calls `===` , so it is accurate either way.
  • Reported in: P1.0 (10-Oct-17)
  • Fixed: 10-Oct-17, awaiting book release
PDF page: 188

... so you’d like to memoize (cache) the result should be

so you’d like to memorize (cache) the result.--Serguei Cambour

Myron Marston says: Actually, our usage of "memoize" (no "r") is intentional. We introduce this term on page 12, with a link to a blog post that explains it more in depth.
  • Reported in: P1.0 (19-Sep-19)
PDF page: 249
$ rspec -rtrail_map -rsupport/verify_doubled_constants should be $ rspec -rsupport/verify_doubled_constants since we try to avoid expensiv...more...
  • Reported in: P1.0 (15-Jul-18)
PDF page: 336
In the very last page of the PDF, there is a "Contact Us" section with links, including some email addresses. When I click on any of the email address...more...