Showing posts with label rspec. Show all posts
Showing posts with label rspec. Show all posts
Tuesday, April 15, 2008
Wednesday, April 2, 2008
BDD examples with user stories and Webrat
This is the best BDD explanation I have ever seen. It explains all the philosophy behind BDD, shows how it fits with RSpec stories, and how you can use Webrat to create a high-level integration test. It even shows how to use Selenium with RSpec stories!
Integration Testing in Ruby with RSpec's Story Automation Framework by David Chelimsky
Big thanks to David Chelimsky!
Integration Testing in Ruby with RSpec's Story Automation Framework by David Chelimsky
Big thanks to David Chelimsky!
Monday, February 11, 2008
Andrzej's Rails tips #5
Two things today, both related to RSpec stories: webrat, and using regexps in RSpec stories.
Webrat with RSpec stories
What is Webrat? "Webrat lets you quickly write robust and thorough acceptance tests for a Ruby web application". It uses Hpricot under the hood and is very easy to understand just by looking at the code.
It took me only 30 minutes to turn most of my tests in one of my applications from a classic IntegrationTest-based RSpec story to Webrat. Here is one example:
Thanks to Ben, for his great article describing RSpec stories with Webrat.
RSpec, response.should have_text
Sometimes, all you need is just a check whether there is a certain message visible on a page. One way of doing that is with regexps. Here is an example step that checks for the message:
Webrat with RSpec stories
What is Webrat? "Webrat lets you quickly write robust and thorough acceptance tests for a Ruby web application". It uses Hpricot under the hood and is very easy to understand just by looking at the code.
It took me only 30 minutes to turn most of my tests in one of my applications from a classic IntegrationTest-based RSpec story to Webrat. Here is one example:
When "he creates an order" do
visits '/'
clicks_link "New order"
fills_in "Nr", :with => 'abc/2008'
fills_in "Company", :with => 'ABC company'
selects 'New'
clicks_button 'Create'
end
Thanks to Ben, for his great article describing RSpec stories with Webrat.
RSpec, response.should have_text
Sometimes, all you need is just a check whether there is a certain message visible on a page. One way of doing that is with regexps. Here is an example step that checks for the message:
Then "he sees a $message" do |message|
response.should have_text(Regexp.new(message))
end
Thursday, January 17, 2008
RSpec User Story example
Today, just a quick example showing what kind of wonderful things you can do with the new RSpec and its support for executable User Stories, a feature I was dreaming about for years...
Specification as a user story:
Story: Creating an order
Scenario: admin user creates an order
Given an admin user
And some orders
And some customers
When he creates an order
Then a new order is created
And a new customer is created
Implementation of the user story
Given "an admin user" do
login_as_admin
end
Given "some orders" do
@orders_count = Order.count
end
Given "some customers" do
@customers_count = Customer.count
end
When "he creates an order" do
post '/orders/create',
"order"=>{"address_attributes"=> {"name"=>"Customer 1"}}
end
Then "a new order is created" do
Order.count.should == @orders_count + 1
end
Then "a new customer is created" do
Customer.count.should == @customers_count + 1
end
The output when the user story is run:
Running 1 scenarios
Story: Creating an order
Scenario: admin user creates an order
Given an admin user
And some orders
And some customers
When he creates an order
Then a new order is created
And a new customer is created
1 scenarios: 1 succeeded, 0 failed, 0 pending
Subscribe to:
Comments (Atom)
