コードのブロックを引数として取るメソッドがあります。問題は、このメソッドがブロックを呼び出した場合にRSpecを使用してテストする方法です。
ブロックは、メソッドが必要とする任意のスコープで評価できますが、必ずしもyield
またはを使用する必要はありませんblock.call
。別のクラスに渡されるか、匿名クラスオブジェクトまたは他の場所で評価されます。テストに合格するには、メソッド呼び出しの結果としてどこかでブロックを評価するだけで十分です。
RSpecを使用してこのようなものをテストする方法はありますか?
とモックのより複雑なケースについては、これも参照してください。lets