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

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
10e5b434a5b842ef2c56ed8a621ca369?d=identicon&s=25 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
This topic is locked and can not be replied to.