Instant RSpec Test Driven Development How-to, by Charles Feduke, is another book in the Instant series published by Pakt Publishing designed to get the reader up and running quickly (Short, Fast, Focused). This book covers test driven development (TDD) using rspec with ruby and is designed for developers of all experience levels.
As a solutions architect who supports rails applications which are written with rspec tests, this book bridges a gap to give me more familiarity with the tests which are relied upon to validate application code.
While reading through this book I was able to quickly and easily get my environment setup with the appropriate gems and packages installed, as well as begin development on a basic application using test driven development. Charles walks the reader through creating a sample application and later on moving that into a rails application with ActiveRecord.
There were many examples throughout the book and it lends itself to following along with a shell window open beside the e-reader. I found myself wondering what some of the examples were doing at times but Charles always came through and explained them within a few pages to satisfy my curiousity. The presentation method in this book is to get you up and running and then explain things a bit later on. I’m sure those more familiar with ruby development would catch on a bit quicker.
While Charles does a great job in this book explaining code refactoring, creating concise code blocks, and giving great examples, he calls out a difference in mocking and stubbing but doesn’t really explain what this critical difference is in a way that I understood it. He also covers JSON validation and file uploads which seem required for every API lately.
The book ends with coverage of capybara for client side testing. This is a great end to the book as after you develop your application function it’s time to validate that the user experience is as expected.
Overall, this was a good read. I thought it was a bit above my level, as far as ruby experience goes, but a useful tool that I will reference and use in the future as I continue to work and learn on ruby/rails projects. Thanks, Charles, I look forward to seeing more in the future.