【发布时间】:2011-05-12 04:34:43
【问题描述】:
现在我的 CanCan 和 Devise 运行良好,我需要添加到我的测试中。
我是否应该期望得到双倍的测试数量,甚至更多?我需要以“访客”用户身份测试所有内容,然后以用户身份和管理员身份测试。
如果使用 rspec,您将如何布局?
describe "GET edit" do
login_admin
it "assigns the requested forum_topic as @forum_topic" do
ForumTopic.stub(:find).with("37") { mock_forum_topic }
get :edit, :id => "37"
response.should redirect_to( new_user_session_path )
end
it "assigns the requested forum_topic as @forum_topic" do
ForumTopic.stub(:find).with("37") { mock_forum_topic }
get :edit, :id => "37"
assigns(:forum_topic).should be(mock_forum_topic)
end
end
帮助模块
def login_admin
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:admin]
sign_in Factory.create(:admin)
end
end
def login_user
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:user]
@user = Factory.create(:user)
sign_in @user
end
end
【问题讨论】:
标签: ruby-on-rails rspec devise functional-testing cancan