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

Using hooks


When a unit test requires a few setup steps, we can just include those steps in the test case before our assertion. For example, we may want to create some entries in a database or configure a service before we execute a test.

When the setup is more complex, it can clutter the test case, making the intent of the test harder to understand while increasing the effort required to maintain the test code. Even if the setup steps are short, if they are repeated in many places, duplication of code can lead to similar problems.

It is common for a setup to require cleanup or teardown steps to ensure tests don't interfere with each other. For example, if we added a few records to a database in a setup phase, we want to remove those records so that subsequent tests start off with a clean environment. Again, we can simply include the teardown steps in the test case after our assertion. This poses even larger problems than setup, because in addition to the issues of clutter and lower maintainability...