Book Image

Application Testing with Capybara

By : Matthew Robbins
Book Image

Application Testing with Capybara

By: Matthew Robbins

Overview of this book

<p>Everybody understands why implementing automated tests is important but at the same time developing them can be costly and time consuming, and tests can be also be fragile and prone to false positives. By using Capybara, you can develop robust tests quickly and run them in multiple drivers ensuring greater re-use; Capybara’s API also extends the human readable style made popular by frameworks such as Cucumber and RSpec.</p> <p>"Application Testing with Capybara" takes you from installing the gem to getting up and running with a YouTube search scenario within the first two chapters. We then look deeper into the API, using Rack-Test for applications built with Rails or Sinatra and see how to test handle Asynchronous JavaScript and “black box” components such as Flash. Finally, we consider some advanced topics such as looking at alternatives to Selenium and accessing the native driver directly.</p> <p>This book takes you from the basics of installing Capybara, through its API and onto advanced topics. You will learn how to use Capybara’s extensive API to interact with your application, covering topics such as navigation, filling in forms, and querying your page for expected content. Beyond this we will consider why Capybara is so well suited to testing applications written in frameworks such as Rails and Sinatra. We will look at strategies for validating seemingly “untestable” components such as HTML5 or Flash by building out a testable API. Finally we will turn you into a Capybara ninja by covering advanced topics such as accessing functionality in the base driver, advanced driver configuration, and alternative flavours of drivers outside Selenium and Rack-Test.</p>
Table of Contents (12 chapters)

Installing system libraries


On some platforms certain gems have a dependency on system libraries. This is usually done for performance reasons. Ruby is an interpreted language so tasks, such as parsing XML can be slow; therefore, it makes sense to delegate that task to a system library.

On Windows you won't need to worry about this, though you will have to ensure you have the Ruby DevKit installed; see http://rubyinstaller.org/add-ons/devkit for detailed instructions on how to do this.

Capybara has a dependency on Nokogiri, the popular Ruby-based XML parser. This in turn needs the following system libraries to be available:

  • libxml2

  • libxml2-dev

  • libxslt

  • libxslt-dev

Tip

The latest version of Nokogiri now includes these dependencies within the gem itself. It is still worth installing the system libraries globally, however, as you will surely encounter projects that rely on versions of Nokogiri prior to 1.6.0.

How you install these on a particular system will differ, for example, apt-get for Ubuntu, yum for Red Hat, or brew for Mac OS X.