"Our tests are broken again!" "Why does the suite take so long to run?"
"What value are we getting from these tests anyway?" Solve your testing
problems by building and maintaining quality software with RSpec - the
popular BDD-flavored Ruby testing framework. This definitive guide from
RSpec's lead developer shows you how to use RSpec to drive more
maintainable designs, specify and document expected behavior, and
prevent regressions during refactoring. Build a project using RSpec to
design, describe, and test the behavior of your code. Whether you're new
to automated tests or have been using them for years, this book will
help you write more effective tests.
RSpec has been downloaded more than 100 million times and has inspired
countless test frameworks in other languages. Use this influential Ruby
testing framework to iteratively develop a project with the confidence
that comes from well-tested code. This book guides you through creating
a Ruby project with RSpec, and explores the individual components in
detail.
Start by learning the basics of installing and using RSpec. Then build a
real-world JSON API, using RSpec throughout the process to drive a
BDD-style outside-in workflow. Apply an effective test strategy to write
fast, robust tests that support evolutionary design through refactoring.
The rest of the book provides the definitive guide to RSpec's
components. Use rspec-core's metadata to slice and dice your spec suite.
Dig into rspec-expectations' matchers: compose them in flexible ways,
specify expected outcomes with precision, and diagnose problems quickly
with the help of good failure messages. Write fast, isolated tests with
rspec-mocks' test doubles while pushing your code toward simpler
interfaces.
The authors, with a combined 20 years of automated testing experience,
share testing wisdom that will lead to a fun, productive testing
experience.
What You Need:
To follow along with the book, you'll need Ruby 2.2+. The book will
guide you through installing RSpec 3 and setting up a new project to use
it.