假设有两个模型:
class Foo < ActiveRecord::Base
has_many :bars
end
class Bar < ActiveRecord::Base
belongs_to :foo
end
及其相关的固定装置:
foos.yml:
one:
...
bar.yml:
one:
foo: one
two:
foo: one
然后是一个测试用例:
test "fixtures equal?" do
foo = foos(:one)
assert_equal foo, foo.bars.first.foo
end
在单元测试框架和功能测试框架中,这个测试对我来说都失败了。我得到的失败看起来像:
1) Failure:
test_fixtures_equal?(FooUnitTest) [test/unit/foo_test.rb:53]:
<#<Foo id: 980190962, created_at: "2012-05-18 21:47:27", updated_at: "2012-05-18 21:47:27">>
with id <70029939109360> expected to be equal? to
<#<Foo id: 980190962, created_at: "2012-05-18 21:47:27", updated_at: "2012-05-18 21:47:27">>
with id <70029939309000>.
我究竟做错了什么?如何让前向和后向指针指向相同的对象?这对我来说尤其重要,因为我试图同时修改两个对象并验证更改,但是 bar.foo 链接没有看到“父” foo 对象的更改,因此我的验证在测试期间失败。
唉,在搜索了几个小时后,我尝试了许多不同的方法,但我无法弄清楚这一点。
谢谢!