3
在Rails中测试一直是一个神秘的事情,我会尽量避免,但我会把一个生产应用程序放在一起,人们会付出代价,所以我真的需要测试。这个问题让我很生气,因为测试失败了,但是当我在控制台(在测试和开发模式下)中执行相同的命令时,它工作正常。after_create回调没有在测试中工作,但在控制台中工作
user_test.rb
test "should update holidays booked after create"
user = users(:robin)
assert_equal user.holidays_booked_this_year, 4 # this passes
absence = user.absences.create(:from => "2011-12-02", :to => "2011-12-03", :category_id => 1, :employee_notes => "Secret") # this works
assert_equal user.holidays_booked_this_year, 5 # fails
end
absence.rb
after_create :update_holidays_booked
def update_holidays_booked
user = self.user
user.holidays_booked_this_year += self.days_used # the days used attribute is calculated using a before_create callback on the absence
user.save
end
我唯一的想法是,它是与通过对缺失模型回调更新用户模型,但是,就像我说的,这在控制台中起作用。
任何意见,将不胜感激。
感谢
罗宾
感谢布兰登。我不小心省略了上面的“做”;它绝对存在于我的代码中。我会尝试以上建议并回报。 – 2011-03-15 09:32:53
谢谢布兰登。被称为重新加载,现在有一个通过测试! – 2011-03-15 12:42:26