2012-03-27 1 views
0

Ich arbeite mit Rails 3.2.2. Und ich habe ein Modell namens Benutzer.Komponententest für ein geschütztes Attribut Rails

In meinem Benutzermodell festgelegt I:

attr_protected :is_admin 

(is_admin ist ein boolean-Attribut)

Für Test diese Eigenschaft habe ich:

test "should not be able to change to admin" do 
    user = User.create(:name => "Joaquim", :email => "[email protected]", :password => "123456", :is_admin => true) 

    assert user.errors.get(:is_admin), "Cant change admin configuration" 
end 

Wenn ich laufen diesen Test Raise Fehler :

1) Error: 
test_should_not_be_able_to_change_to_admin(UserTest): 
ActiveModel::MassAssignmentSecurity::Error: Can't mass-assign protected attributes: is_admin 
    test/unit/user_test.rb:44:in `test_should_not_be_able_to_change_to_admin' 

Welche Assert muss ich für diesen Test verwenden?

Danke!

Antwort

1

können Sie verwenden

assert_raise(ExceptionClass) { .... } 

In rspec würden Sie tun

expect { ... }.to raise_error(ExceptionClass)