It uses webrat for acceptance tests of a simple sacaffolded model.
Here are the steps:
create a new rails project
$ rails new testwebrat -d postgresql $ cd testwebrat
edit the Gemfile
group :development, :test do gem 'rspec', '>= 2.0.0' gem 'rspec-rails', '>= 2.0.0' gem 'webrat' end
install the missing bundles
$ bundle install
let the rspec files generate
$ rails g rspec:install
as a quick sample, generate a new scaffold User
$ rails g scaffold User name:string
do the migrations
$ rake db:migrate
start the server to see everything is working
$ rails s
write the webrat test in file rspec/requests/users_spec.rb
describe 'Managing users' do
it 'should enable the creation of a new entity' do
visit users_path
response.should contain 'Listing users'
response.should_not contain 'Show'
response.should_not contain 'Edit'
response.should_not contain 'Destroy'
response.should have_selector 'a', :content => 'Destroy', :count => 0
response.should have_selector 'a', :href => new_user_path, :content => 'New User'
click_link 'new User'
fill_in 'user[name]', :with => 'my_type'
click_button 'Create User'
response.should contain 'was successfully created.'
response.should have_selector 'p', :content => 'my_type'
click_link 'Back'
response.should contain 'Listing users'
response.should have_selector 'table tr', :count => 2
response.should have_selector 'table tr:last-child td:first-child', :content => 'my_type'
response.should contain 'Show'
response.should contain 'Edit'
response.should contain 'Destroy'
end
it 'should enable the deletion of an entry' do
visit users_path
click_link 'new User'
fill_in 'user[name]', :with => 'my_type'
click_button 'Create User'
response.should contain 'was successfully created.'
response.should have_selector 'p', :content => 'my_type'
click_link 'Back'
response.should contain 'Listing users'
response.should have_selector 'a', :content => 'Destroy', :count => 1
click_link 'Destroy', :method => :delete, :javascript => true
response.should contain 'Listing users'
response.should_not contain 'Show'
end
end
run the rspec request tests
$ rake spec:requests
No comments:
Post a Comment