Every repository with this icon (
Every repository with this icon (
| name | age | message | |
|---|---|---|---|
| |
README.textile | Sat Aug 08 14:53:06 -0700 2009 | |
| |
Rakefile | Sun Nov 16 15:19:11 -0800 2008 | |
| |
controller/ | Fri Jul 31 00:33:51 -0700 2009 | |
| |
features/ | Sat Aug 08 14:53:06 -0700 2009 | |
| |
layout/ | Fri Jul 31 00:33:51 -0700 2009 | |
| |
public/ | Sun Nov 16 15:12:39 -0800 2008 | |
| |
spec/ | Sun Nov 16 15:12:39 -0800 2008 | |
| |
start.rb | Fri Jul 31 00:30:14 -0700 2009 | |
| |
view/ | Fri Jul 31 00:33:51 -0700 2009 |
Introduction
This project provides examples of testing web applications that use javascript and AJAX. The main tools are Cucumber to describe the required behaviour and Celerity for simulating a web browser and executing the javascript.
Thanks to Ashley Moran for the introduction to using cucumber, celerity, and rspec at: geekup-sheffield
The examples were developed with Celerity version 0.0.6.
Note:
Specifying the required behaviour consists of 2 parts:
- running the web application using your favourite staging environment
- driving the web application using jRuby, cucumber, celerity, rspec, and friends
Quickstart: read feature files and step definitions in features/
Getting started
Celerity requires jRuby. Celerity, cucumber, rspec, and other gems used for specifying the required behaviour are installed in the jRuby environment.
Install
- Ramaze (2009.07) Easy web app framework
- jRuby (1.3.1)
- Celerity (0.0.6)
- Cucumber (0.3.94)
- Rspec (1.2.8)
- hpricot (0.6.164) jRuby instructions
Verify the web application is installed correctly by
- ruby start.rb
- browse to localhost:7000
You should see “Welcome” and a list of example web pages.
Verify jRuby, cucumber, rspec are installed correctly by
- jrake cucumber
You should see output similar to
Feature: Verify Cucumber, celerity, rspec are installed # features/verify_cucumber_installation.feature
In order verify web application behaviour
the development team should be able to
run cucumber and celerity
Scenario: visit the web application home page # features/verify_cucumber_installation.feature:6
When I visit the home page # features/step_definitions/first_steps.rb:19
Then I should see "Welcome" # features/step_definitions/first_steps.rb:35
2 steps passed
Tips
Links to Celerity documentation
Documentation on Github
Documentation on rubyforge
Wait for AJAX to finish
AJAX calls are executed asynchronously, which means we have to tell celerity to wait for the AJAX call to finish before trying to verify the results.
One option is to create a browser instance that automatically waits for AJAX calls to finish.
@browser = Celerity::Browser.new(:resynchronize => true)
Or you can explicitly wait for AJAX calls.
When "I wait for the AJAX call to finish" do @browser.wait end
Which came from the Celerity Ajax docs
and HtmlUnit FAQ
Automatically executing the AJAX response
A jQuery AJAX request like
$.get('http://localhost:7000/ajax_responses/returning_javascript', null, null, 'script');
is now automatically executed with celerity 0.0.6.
Using Celerity from jirb
You can explore celerity by using jirb as follows
> jirb
> require ‘rubygems’
> require ‘celerity’
> browser = Celerity::Browser.new
> browser.goto(‘http://localhost:7000/on_page_load’)
> browser.html
Credits
Yutaka HARA – Updated the examples to use Ramaze (2009.07)







