rspecのモックで、and_return
に複数の引数を与えるとそれらの値を順番に返し、and_raise
を使うと呼ばれた時に例外を発生させられることは理解しています。
しかし、そのメソッドが呼ばれた1回目は値を返し、2回目は例外を発生させるという書き方が分かりません。
and_return
と and_raise
の組み合わせで書けるのでしょうか?
参考
allow(die).to receive(:roll).and_return(1, 2, 3) die.roll # => 1 die.roll # => 2 die.roll # => 3 die.roll # => 3 die.roll # => 3
allow(double).to receive(:msg).and_raise(error)
あなたの回答
tips
プレビュー