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

Black-box JavaScript tests with a real browser

Capybara's first gem release was in 2009. At that time, JavaScript was not required for many popular web pages, and a popular approach to web development was "unobtrusive JavaScript", which meant that the basic functionality of a web page was still available without JavaScript. The most popular framework for JavaScript was jQuery and single-page web app frameworks like Angular.js or React were not in wide use. In the intervening years, web pages have been steadily replaced by web apps, which require JavaScript for all functionality. The single-page web application is a very popular architecture and many frameworks exist to support it.

The reason for this history lesson is to put in context the choices we are going to make about how we use Capybara. The easiest way to use Capybara and the first thing documented in its README is to let Capybara start our web app automatically, allowing anything in the app to be mocked. To interact with the web...