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
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Detecting false negatives and false positives


Tests can fool us with failures when the code actually works fine (false negatives) and successes when the code is broken (false positives). There is no way to completely eliminate false results, but we can reduce their likelihood by keeping tests simple and doing sanity checks. Sometimes our tests might seem like they are not doing enough, or we may seem to be checking for redundant things that we expect never to break. That is simply the price we have to pay to minimize the chance that our tests are fooling us.

Let's cover three useful tactics to reduce false results:

  • Sanity checks

  • Tests for the opposite case

  • Increased specificity of assertions

Detecting false results is a fundamental concern of testing, so the tests all throughout this chapter (and the rest of the book) include measures to reduce false results. For example, let's go back to three before hooks in three different tests that we defined in Chapter 3, Taking Control of State with Doubles...