1

正しいですが、タイトルには説明が必要です:)

私はこのクラスを持っています:

class Character
  include DataMapper::Resource

  def self.tick_all
    all.collect &:tick
  end

  def tick
    # do stuff
  end

end

が呼び出されたときにわかるようにCharacter.tick_all、そのすべてのインスタンスがtick呼び出しを受け取る必要があります。期待どおりに動作します。コンソールを起動すると、tick作業が完了します。しかし、私は自分のテストに合格することができません:

describe ".tick_all" do
  let(:instance) { FactoryGirl.create(:character) }
  it "invokes #tick for every instance" do
    Character.tick_all
    instance.should_receive(:tick)
  end
end

失敗した例:

Failure/Error: instance.should_receive(:tick)
  (#<Character:0x00000002fa4e28>).tick(any args)
      expected: 1 time
      received: 0 times
4

1 に答える 1