Book Image

RSpec Essentials

By : Mani Tadayon
Book Image

RSpec Essentials

By: Mani Tadayon

Overview of this book

This book will teach you how to use RSpec to write high-value tests for real-world code. We start with the key concepts of the unit and testability, followed by hands-on exploration of key features. From the beginning, we learn how to integrate tests into the overall development process to help create high-quality code, avoiding the dangers of testing for its own sake. We build up sample applications and their corresponding tests step by step, from simple beginnings to more sophisticated versions that include databases and external web services. We devote three chapters to web applications with rich JavaScript user interfaces, building one from the ground up using behavior-driven development (BDD) and test-driven development (TDD). The code examples are detailed enough to be realistic while simple enough to be easily understood. Testing concepts, development methodologies, and engineering tradeoffs are discussed in detail as they arise. This approach is designed to foster the reader’s ability to make well-informed decisions on their own.
Table of Contents (17 chapters)
RSpec Essentials
About the Author
About the Reviewers

Using VCR for mock requests

VCR is a popular tool for recording and replaying HTTP requests. VCR was created by Myron Marston, who also happens to be the lead developer of RSpec. Although it is much more sophisticated than our primitive HTTP request mocking setup, at its heart, VCR works the same way: it records real HTTP requests to files and replays them during specs. The nice thing about VCR is that it does everything in a configurable and automated way. We can tap into recorded HTTP requests with a small configuration file and an RSpec tag, so we don't actually have much code in our specs related to mocking HTTP requests. We can also record new HTTP requests very easily to a new cassette (the term used by VCR for the file that records the HTTP request and response) or to update an existing cassette. Finally, we can easily turn our end-to-end tests into integration tests that actually hit real HTTP endpoints. In short, VCR gives us many more options and simplifies our test code.