8.3 Introduction to Cucumber

Having finished the foundation of the sample application’s
authentication system, we’re going to take this opportunity to show how
to write signin tests using Cucumber, a popular tool for behavior-driven
development that enjoys significant popularity in the Ruby community.
This section is optional and can be skipped without loss of continuity.

Cucumber allows the definition of plain-text stories describing
application behavior. Many Rails programmers find Cucumber especially
convenient when doing client work; since they can be read even by
non-technical users, Cucumber tests can be shared with (and can
sometimes even be written by) the client. Of course, using a testing
framework that isn’t pure Ruby has a downside, and I find that the
plain-text stories can be a bit verbose. Nevertheless, Cucumber does
have a place in the Ruby testing toolkit, and I especially like its
emphasis on high-level behavior over low-level implementation.