0

cucumber と rpsec について詳しく知るために、rspec の本を読んでいます。しかし、私が本当に理解していないのは、以下のコメント付きの行です:

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 は 2 番目であり、その逆であると予想していました。「ゲームの開始、これを推測した場合、これを受け取る必要があります」と言いますが、そのようには機能しません。

  1. should_receive はどのように機能しますか?
  2. そこで待機し、標準出力が飛び出すのをキャッチするのはオブザーバーですか?
4

1 に答える 1

0

.should_receiveすべてのステートメントが実行された後に呼び出しを探します。

于 2012-08-04T05:16:05.787 に答える