[RuPy 2011] Automatic Acceptance Tests in Ruby

Preview:

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.

Citation preview

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.

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

Recommended