$:.unshift(File.dirname(__FILE__) + "/../lib/") require "cuba" require "cuba/test" form = < EOS Cuba.define do on get do on path("login") do res.write "Enter your username" res.write form end on default do if session[:user] res.write "Hey #{session[:user]}!" else res.redirect "/login" end end end on post, path("login") do on param("user") do |user| session[:user] = user res.write "Got #{user}" end end end Cuba.test "Sample Site" do story "As a user I want to be able to login" do scenario "A user submits good info" do visit "/" assert_contain "Enter your username" fill_in "user", :with => "Michel" click_button "Login" assert_contain "Got Michel" visit "/" assert_contain "Hey Michel!" end end end