hey guys: I met a very strange problem when testing a CallBack in model.
I think the codes are very straightforward.
model:
class Download < ActiveRecord::Base belongs_to :user belongs_to :drink after_create :add_download_count
def add_download_count drink = Drink.find(self.drink_id) drink.download_count += 1 drink.save end end
test:
require 'test_helper'
class DownloadTest < ActiveSupport::TestCase # Replace this with your real tests.
def setup @drink = drinks(:one) @user = users(:quentin) end
test "the download count should increase when some one download a drink" do
old_download_count = @drink.download_count puts @drink.download_count d = Download.new(:drink_id => @drink.id, :user_id => @user.id, :stars => 5) assert d.save assert_equal old_download_count + 1, @drink.reload.download_count
end end
But the test is always because the last assert. the @drink's download_count is not increase...
<6> expected but was <5>.
This problem really make me crazy... Hope you guys can give me some help
thanks a lot...
Terry