我一直在关注 rspec book 以了解有关 cucumber 和 rpsec 的更多信息。但我不太明白的是下面这些带有注释的行:
messenger = mock("messenger").as_null_object
game.start(%w[a b c d])
messenger.should_receive(:puts).with("bbbb") # 1st line
game.guess(%w[a b c d]) # 2nd line
module Game
#...
def guess(guess)
@messenger.puts "bbbb"
end
end
我的问题是:我预计 1 linw 应该是 2nd 和反向,就像我们说的“游戏开始,如果你猜到这个,那么你应该收到这个”,但它不是那样工作的。
- should_receive 是如何工作的?
- 是一个观察者在那里等待并捕捉到 stdout 弹出的内容吗?