我正在使用 rspec 测试我的应用,我需要一个使用设计宝石测试的提示。 测试权限以查看某些路径的最佳方法是什么。
例如,我在ProductController中有这个回调
before_filter :authenticate_user!, :except => [:show, :index]
我需要这样的事情
before (:each) do
@user = User.create!({
:name => 'Test User',
:email => 'user@test.com',
:password => 'pleaseletmein',
:password_confirmation => 'pleaseletmein'
})
sign_in @user
end
before ([:create, ....]) do
sign_out @user if @user
end
let(:valid_session) { {"warden.user.user.key" => session["warden.user.user.key"]} }
let(:un_valid_session) { {} }
.....
describe "create" do
it "....." do
get(:create, {}, un_valid_session)
response.should redirect_to(root_path)
.....
或分享你测试这种行为之王的方式。
答案 0 :(得分:1)
看一下rails3-bootstrap-devise-cancan项目。 有功能文件夹,其中包含您需要的几乎所有 https://github.com/RailsApps/rails3-bootstrap-devise-cancan/tree/master/features