71 lines
2.4 KiB
Text
71 lines
2.4 KiB
Text
== RSpec
|
|
|
|
RSpec is a Behaviour Driven Development framework with tools to express User Stories
|
|
with Executable Scenarios and Executable Examples at the code level.
|
|
|
|
RSpec ships with several modules:
|
|
|
|
Spec::Story provides a framework for expressing User Stories
|
|
|
|
Spec::Example provides a framework for expressing code Examples
|
|
|
|
Spec::Matchers provides Expression Matchers for use with Spec::Expectations
|
|
and Spec::Mocks.
|
|
|
|
Spec::Expectations supports setting expectations on your objects so you
|
|
can do things like:
|
|
|
|
result.should equal(expected_result)
|
|
|
|
Spec::Mocks supports creating Mock Objects, Stubs, and adding Mock/Stub
|
|
behaviour to your existing objects.
|
|
|
|
== Installation
|
|
|
|
The simplest approach is to install the gem:
|
|
|
|
gem install -r rspec #mac users must sudo
|
|
|
|
== Building the RSpec gem
|
|
If you prefer to build the gem locally, check out source from svn://rubyforge.org/var/svn/rspec/trunk. Then
|
|
do the following:
|
|
|
|
rake gem
|
|
gem install pkg/rspec-0.x.x.gem (you may have to sudo)
|
|
|
|
== Running RSpec's specs
|
|
In order to run RSpec's full suite of specs (rake pre_commit) you must install the following gems:
|
|
|
|
* rake # Runs the build script
|
|
* rcov # Verifies that the code is 100% covered by specs
|
|
* webby # Generates the static HTML website
|
|
* syntax # Required to highlight ruby code
|
|
* diff-lcs # Required if you use the --diff switch
|
|
* win32console # Required by the --colour switch if you're on Windows
|
|
* meta_project # Required in order to make releases at RubyForge
|
|
* heckle # Required if you use the --heckle switch
|
|
* hpricot # Used for parsing HTML from the HTML output formatter in RSpec's own specs
|
|
|
|
Once those are all installed, you should be able to run the suite with the following steps:
|
|
|
|
* svn co svn://rubyforge.org/var/svn/rspec/trunk rspec
|
|
* cd rspec
|
|
* rake install_dependencies
|
|
* cd example_rails_app
|
|
* export RSPEC_RAILS_VERSION=1.2.3
|
|
* rake rspec:generate_mysql_config
|
|
* mysql -u root < db/mysql_setup.sql
|
|
* cd ..
|
|
* rake pre_commit
|
|
|
|
Note that RSpec itself - once built - doesn't have any dependencies outside the Ruby core
|
|
and stdlib - with a few exceptions:
|
|
|
|
* The spec command line uses diff-lcs when --diff is specified.
|
|
* The spec command line uses heckle when --heckle is specified.
|
|
* The Spec::Rake::SpecTask needs RCov if RCov is enabled in the task.
|
|
|
|
See http://rspec.rubyforge.org for further documentation.
|
|
|
|
== Contributing
|
|
|