Forum: RSpec 2 almost identical tests need different assertions to work and I can't figure out why

Posted by Tyrel R. (tyrel_r58)
on 2012-06-16 23:38
Hey everyone, I am learning bdd and do deffently like it on the whole. I
ran into a strange situation I got around it but it left a question in
my mind and I would appreciate help in removing it ;)

So hear is what happened

test for one model:

it "Should protect id from mass assignment" do
    attributes = @user.attributes
    attributes['id'] = 42
    lambda do
      User.create(attributes).id.should_not equal 42
    end.should raise_error ActiveModel::MassAssignmentSecurity::Error
end

passes

test for another model

it "Should not allow ID to be mass assigned" do
      attributes = @dispensary.attributes
      attributes['id'] = 42
      disp = Dispensary.create( attributes )
      disp.id.should_not equal 42
end

also passes

if I write a similar test for the first one instead of checking the
exception like
[code]
it "Should not allow ID to be mass assigned" do
      attributes = @dispensary.attributes
      attributes['id'] = 42
      disp = Dispensary.create( attributes )
      disp.id.should_not equal 42
  end

Rspec stops because an error was raised. I am confused what variable am
I missing thank you
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.