Allez, c’est parti, tout est dans le titre !

Faire du Behavior driven development et du Test driven development et un tour de main avec Rails 3.1

Créer un nouveau projet :
$ rails n myproject -T -J

Éditer Gemfile
source 'http://rubygems.org'
gem 'rails', '3.1.1'
gem 'sqlite3'
gem 'json'
group :assets do
gem 'sass-rails', '~> 3.1.4'
gem 'coffee-rails', '~> 3.1.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
gem 'haml-rails'
group :test do
gem 'factory_girl_rails'
gem 'rspec-rails'
gem 'rspec'
gem 'spork', '>=0.9.0.rc7'
gem 'cucumber'
gem 'cucumber-rails'
gem 'annotate'
gem 'rb-fsevent'
gem 'guard-spork'
gem 'guard-rspec'
gem 'guard-cucumber'
gem 'database_cleaner'
gem 'capybara'
gem 'rspec-rails'
gem 'ZenTest'
gem 'growl'
end

Installer les gems
$ bundle install

Installer rspec
$ rails g rspec:install

Éditer .rspec
--colour
--format progress
--drb
-fs

initialisation de spork
$ spork --bootstrap

Éditer le fichier « spec/spec_helper.rb »
require 'rubygems'
require 'spork'
Spork.prefork do
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
config.mock_with :rspec
config.fixture_path = "#{::Rails.root}/spec/fixtures"
config.use_transactional_fixtures = true
config.treat_symbols_as_metadata_keys_with_true_values = true
config.filter_run :focus => true
config.run_all_when_everything_filtered = true
end
end
Spork.each_run do
FactoryGirl.reload
end

Installer cucumber
$ rails g cucumber:install --capybara --rspec --spork

Installer jquery
edit « app/assets/javascripts/application.js »
//= require jquery
//= require jquery_ujs

Initialisation de guard
$ guard init spork
$ guard init rspec
$ guard init cucumber

Démarrer le serveur
$ rails s -u

Démarrer guard
$ guard

A vous de jouer !!!