0

我一直在关注 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 和反向,就像我们说的“游戏开始,如果你猜到这个,那么你应该收到这个”,但它不是那样工作的。

  1. should_receive 是如何工作的?
  2. 是一个观察者在那里等待并捕捉到 stdout 弹出的内​​容吗?
4

1 回答 1

0

.should_receive在执行完所有语句后查找调用。

于 2012-08-04T05:16:05.787 回答