On 2008-11-11, at 17:24, Fernando Perez wrote:
I've really moved away from shared example groups and started writing
more targeted macros. So I might do something like this:

def for_roles *roles
 roles.each do |role|
   before(:each) { login_as role }
   yield
 end
end

describe OrdersController do
 describe "GET index" do
   for_roles :admin, :sysadmin do |role|
     it "..." do ... end
   end
   for_roles :sysadmin do |role|
     it "..." do ... end
   end
 end

 describe "GET edit" do
   for_roles :admin, :sysadmin do |role|
     it "..." do ... end
   end
   for_roles :sysadmin do |role|
     it "..." do ... end
   end
 end
end


I can't write my specs so that they work as expected. What does login_as
look like? And where do you put this code? I am not sure mine (if
working) gets initialized correctly.

I think I have to write my specs from scratch.

Hi Fernando. #login_as is a custom method that you need to write yourself. It should simply login as the given user, or a user with the given role. Its implementation will depend on which authentication and authorisation system you're using.

Cheers,
Nick

_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to