0

気にしないメッセージをいくつでも受け取る可能性のあるオブジェクトをモックしたいと考えています。このオブジェクトには、「true」などのデフォルトの回答があり、重要な場所に特定のメソッドと回答を追加できるようにしたいと考えています。RSpecでこれを行うことは可能ですか? 私が欲しいのは次のようなものです:

obj = default_double(default: true, widget_count: 5)
obj.foobar.should == true
obj.widget_count.should == 5

戻り値としてラムダまたはプロシージャを渡し、default_double がそのラムダの評価を返すようにできればいいのですが。proc または lambda がテストのコンテキストで評価され、例で使用可能な変数にアクセスできると、非常に便利です。

したがって、上記の機能が追加された場合、次のようになります。

@widgets = WidgetContainer.new
@widgets.widget_count = 5
obj = default_double(default: true, widget_count: lambda { @widgets.widget_count })
obj.foobar.should == true
obj.widget_count.should == 5

この機能の動機が読者にとって興味深いものである場合は、受信できる可能性のあるすべてのメッセージを掘り下げて見つけたくないか、考えられるメッセージのセットが非常に大きいか不明であると仮定しましょう。

このようなものはRSpecに組み込まれていますか?

4

1 に答える 1