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