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 番目であり、その逆であると予想していました。「ゲームの開始、これを推測した場合、これを受け取る必要があります」と言いますが、そのようには機能しません。
- should_receive はどのように機能しますか?
- そこで待機し、標準出力が飛び出すのをキャッチするのはオブザーバーですか?