[rupy 2011] automatic acceptance tests in ruby
DESCRIPTION
Slides from one day workshop, where people could learn how to write acceptance tests in efficient and practical way, in the context of Ruby On Rails framework (using tools like: rspec and capybara). During this course you attendees also learn about approaches that turn your acceptance tests into invaluable documentation, that includes information about your application's requirements and specification.TRANSCRIPT
automatic
ACCEPTANCE TESTS
by @CS3B from @SELLEO
●acceptance tests vs integration tests
●view few examples●write example tests● look at cucumber●review some tools● look capybara api●documentations and write better api●some random tips about testing
http://toolmonger.com/2008/04/30/its-just-cool-87-tool-swiss-army-knife/
@ Alan Signer
http://blog.jonasbandi.net/2010/09/acceptance-vs-integration-tests.html
http://thecriticalpath.info/wp-content/uploads/2009/11/checklist.jpg http://www.shopperculture.com/photos/uncategorized/2009/01/11/value.gif http://www.ruthmalan.com/Journal/Images/ArchitectureDocumentS.jpg http://www.codework-systems.com/images/icons/netop/teacher.png
ACCEPTANCE !=
INTEGRATION
after new user register, it should be possible to spread word about our
product through her social channels to get more
customers
after new user register, it should be possible to spread word about our
product through her social channels to get more
customers
after new user register, it should be possible to
spread word about our product through her social
channels to get more customers
after new user register, it should be possible to spread word about our
product through her social channels to get more
customers
Examples:●post on twitter●post on
facebook●post on linkedin●post on ...
to attract people with hearing loss to site we should provide comprehensive article list that cover most important topics.
Important topic list: hearing loss , hearing aids, tinnitus, hearing rehabilitation
We should provide facilities to make easy for any
customers to contact with support team - also support
team should have easy reply channel. Feedback would
have impact on future development and
customer experience.
http://3.bp.blogspot.com/-0A-ZwSc33DU/TXuXxNMheCI/AAAAAAAAAKo/3pUohpMToX4/s320/surprised_baby_2.jpg
excercise #1
1.open web application that you have work in past / use
2. find and describe two acceptance criteria with all 3 elements so it could be used as initial specification (without implementation details)
http://archives.un.org/ARMS/sites/ARMS/uploads/images/1195421755148157000Andy_-_Tools_Hammer_Spanner_svg_hi.png
http://www.stat.uiowa.edu/~jcryer/22s008/righttool.htm
http://cukes.info/images/cuke_logo.png
Feature: Sharing info about site through social channels after new user register it should be possible to spread word about our product through her social networks to get more customers
# gain permission to post on wall automaticlyScenario: sign up through facebook
Scenario: ask user to post short message after registration
http://4.bp.blogspot.com/_1c6uKfrEfj0/S9ILYSIigII/AAAAAAAAFEU/hBcZO2mbD_I/s1600/mouse_robot.jpg
RSPEC
CAPYBARA
http://ui.thoughtbot.com/assets/capybara-driver.jpg
exercise #2
Bootstrap rspec and capybara in Ruby on Rails project
fetch project from:
http://bit.ly/workshop_app
exercise #3
Run simple test to
name of file:
spec/acceptance/home_page_spec.rb
exercise #4
Write essential acceptance test for e-commerce using
capybara api
name of file:
better api then capybara
●bbq●real production example
of similar idea
exercise #5
Write essential acceptance test for e-commerce using custom
api
name of file:
meta info
# We should provide facilities to make easy for any # customers to contact with support team - also support # team should have easy reply channel. Feedback # would have impact on future development and # customer experience.## milestone: one## value: essential## estimation: 21## scope: added## type: acceptance
scenario "contact with support", :status => 'done' do @customer.click "Contact Us", :within => "#sidebar"
---# ~/.spec--tag status:wip
---spork issue
http://i9.photobucket.com/albums/a65/Pasha_1950/Crash-1.jpg
huge initial data