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

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.