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

Building web apps with Rack


Now we're finally ready to write some code. We'll start building our view with HTML and JavaScript, working our way from the outside in. We're going to have to speed through this first step as it is impossible to capture the chaotic first steps of building a UI. The main point to keep in mind is that we're skipping the Ruby code that will power our app eventually.

We'll have a tiny mock web app in Ruby that serves our static HTML and JavaScript files, but that doesn't really count. By defining our UI first, we can figure out what our remaining code will need to do.

First, let's get our mock web app out of the way. All this does is serve static files, and we could have used Nginx or any other web server to achieve the same result. But we're going to use Rack (http://rack.github.io), a popular Ruby web server interface. It's worth learning more about Rack, as it's one of the most important Ruby libraries out there, and is the foundation of Sinatra, Rails, and other...