A problem when testing a CallBack in model

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