2013-05-05 14 views
12

Próbuję przetestować, jak zalogowany użytkownik nie zachowuje się jak tentestowanie autoryzacja RSpec z RAISE_ERROR nie działa

describe "not logged in user" do 
    user_no_rights 

    it "can't access action index" do 
     expect(get :index).to raise_error(CanCan::AccessDenied) 
    end 
    end 

Wyjście kiedy biegnę rspec

Failure/Error: expect(get :index).to raise_error("CanCan::AccessDenied:You are not authorized to access this page.") 
    CanCan::AccessDenied: 
     You are not authorized to access this page. 

Tak to wygląda poprawne wykonanie jest podniesione, ale dlaczego specyfikacja nie przechodzi?

+12

W przypadku wystąpienia błędu "spodziewać się" może być konieczne podanie bloku: 'expect {get: index} .to raise_error (CanCan :: AccessDenied)'. –

+0

dziękuję @ThomasKlemm! – Zippie

Odpowiedz

18

Zmieniłem specyfikację do:

describe "not logged in user" do 
    user_no_rights 

    it "can't access action index" do 
     expect{get :index}.to raise_error(CanCan::AccessDenied) 
    end 
end 

i to działa. Kudos do Thomasa! :-)