虽然正确,但标题需要一些解释:)
我有这堂课:
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