Skip to content

Instantly share code, notes, and snippets.

@adamwathan
Created March 17, 2017 15:28
Show Gist options
  • Star 20 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save adamwathan/b271d1a34f5b37b1a2ad2e844c86b329 to your computer and use it in GitHub Desktop.
Save adamwathan/b271d1a34f5b37b1a2ad2e844c86b329 to your computer and use it in GitHub Desktop.
TDD Books

TDD Books

  1. Test-Driven Development by Example by Kent Beck

    This is the original TDD book, definitely the best place to start to really understand the fundamentals. It's written in a very conversational style and is a really fun read.

  2. The RSpec Book by David Chelimsky

    At first glance you would think this book is just a guide to using RSpec, the Ruby testing library, but the title of this book totally doesn't do it justice.

    This book goes into a ton of detail about outside-in TDD and BDD workflows, and is loaded with real-world advice about doing BDD in Rails (which happens to translate quite nicely to Laravel).

    This is probably my favorite practical reference for test-driving web applications.

  3. Growing Object Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce

    This is definitely the heaviest resource of the three, but totally worth it. Steve and Nat were a big part of pioneering the use of mock objects, and this book is the canonical resource on using a mockist approach to help design your applications.

    The examples are in Java which can be a little tough if you've never worked with the language before, but it's similar enough to PHP that you should be able to follow along with a little bit of effort.

    It took me a while to get through this one, but I took away a lot of important insights and am really glad I worked through it. I wouldn't recommend it as a starting point, but it's definitely worth a read once you start getting comfortable with the fundamentals.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment