This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
Example macros
This is a repository of user contributed shoulda macros. Feel free to add your own to this list – either linking to a blog post (highly encouraged), or showing the code inline.
Paperclip
class UserTest < Test::Unit::TestCase
should_have_attached_file :avatar
end
See this GIANT ROBOTS post for the full code.
acts_as_paranoid
class UserTest < Test::Unit::TestCase
should_act_as_paranoid
end
class Test::Unit::TestCase
def self.should_act_as_paranoid
klass = model_class
context "A #{klass.name}" do
should "be paranoid (it will not be deleted from the database)" do
klass.paranoid?
end
should "not have a value for deleted_at" do
assert object = klass.find(:first)
assert_nil object.deleted_at
end
context "when destroyed" do
setup do
assert object = klass.find(:first)
@deleted_id = object.id
object.destroy
end
should "not be found" do
assert_raise(ActiveRecord::RecordNotFound) { klass.find(@deleted_id) }
end
should "still exist in the database" do
deleted_object = klass.find_with_deleted(@deleted_id)
assert_not_nil deleted_object.deleted_at
end
end
end
end
end
RESTful AuthSystem (should_require_login)
See MetaSkills post for the full code.
class UsersControllerTest < ActionController::TestCase
should_require_login :edit, :update, :etc
end
module AuthSystem
module TestHelper
def self.included(receiver)
receiver.extend ClassMethods
receiver.send :include, InstanceMethods
end
module ClassMethods
def should_require_login(*actions)
actions.each do |action|
should "Require login for '#{action}' action" do
get(action)
assert_redirected_to(login_url)
end
end
end
end
module InstanceMethods
def login_as(user)
if u = users(user)
@request.session[:user_id] = u.id
end
end
end
end
end
Acts As Ferret, Acts As Taggable On Steroids, Acts As List
Some basic macros for acts_as_ferret, acts_as_taggable_on_steroids, and acts_as_list can be found at Shoulda Macros for Common Plugins – mileszs.com
Userstamp
See Rahvin’s post for the full code.
Class PostTest < Test::Unit::TestCase
should_be_stampable
end
Class UserTest < Test::Unit::TestCase
should_stamp_models
end







