Below is a list of my favorite books and other resources about Rails, Ruby, and Rails application testing. If you buy any of these, please consider purchasing through the provided Amazon affiliate links. I get a small cut that helps defray the expenses of keeping Everyday Rails going. Thanks for your support.
I first learned Ruby and Rails back in 2005, with Agile Web Development with Rails by Sam Ruby, Dave Thomas, and David Heinemeier Hanson as my guide. It was in its first edition back then, and Rails has evolved a great deal since that time. I’ve kept an eye on subsequent versions of the book, though, and still think it’s among the best ways to get started with the framework.
The venerable “Pickaxe Book” from Dave Thomas, Chad Fowler, and Andy Hunt is a great companion to Agile Rails. It takes you deeper into Ruby’s internals and can help you understand some of the quote-unquote magic that Rails is sometimes accused of performing.
This is my favorite Ruby book and is recommended reading once you’ve got the basics of the language down, or if you’re comfortable with Rails and ready to know how its underpinnings work. Russ Olsen covers everything from proper style to DSL creation to metaprogramming. Easy to read, yet full of great information.
My other favorite Ruby book; Sandi Metz’s POODR has become the go-to for honing skills in object-oriented design. I can’t recommend it enough.
Another excellent book from Russ Olsen; this one provides Ruby examples of commonly used patterns in object-oriented software.
So you’ve written a Rails application, but left messy code in your wake? Refactoring: Ruby Edition includes step-by-step instructions for making your classes and methods easier to read and debug.
Learn something new about Ruby, twice weekly. Avdi Grimm’s Ruby Tapas subscription video series provides hundreds of short, professional, to-the-point videos on all facets of the language.
My own book on getting started with Rails testing, in which I strip out the complexity and focus on a small core of useful utilities to help you get your Rails applications tested. It’s the story of how I learned to test my own Rails applications, by starting with the simple things and working my way up to more complex scenarios.