Unit test dependent destroy

Hi all,

I have a model like this:

class A < ActiveRecord::Base has_many :bs, :dependent => :destroy end

and I have test code like this:

a = create_a b = create_b(a) a.save b.save assert_difference 'B.count', -1 do # WORKS a.destroy end assert a.destroyed? # WORKS assert b.destroyed? # FAILS - why?

b is deleted from the database but the destroyed method returns false.
Why ist the test failing and what can I do to make the last assert pass?

Thanks, Georg

That’s because ‘b’ is already a stale object. You can rewrite your test
to check if ‘b’ has really been destroyed/deleted on the DB this way:

assert B.find_by_id(b.id).nil?

HTH

On 10/13/10 10:27 PM, Georg M. wrote:

and I have test code like this:
assert b.destroyed? # FAILS - why?

b is deleted from the database but the destroyed method returns false.
Why ist the test failing and what can I do to make the last assert pass?

Thanks, Georg


Erol F.

http://twitter.com/erolfornoles
http://ph.linkedin.com/in/erolfornoles