1
大きなフレームワークの一部を書いていますが、スタブに問題があります。ここで私はMinitestでテストしたクラスのメソッドをスタブする
class A
def bar
# some code
foo
# some code
end
def foo
# method dependent on other parts of the framework
end
end
は、今私はメソッドバーをテストしたい持っているものですが、それはFOOに依存し、fooが(より多くの統合テストの問題である)フレームワークの他の部分を呼び出します。私は何をしたいのは、私のテストでのようなものFOOをスタブすることです:
class TestA < Minitest::Test
def stubbed_foo
return 5
end
def test_bar
a = A.new
# use stubbed_foo in a instead of foo
result = a.bar
# some assert
end
end
をしかし、私はどのように行うのか分かりません。私は私が正しく理解していれば、あなたがMiniTest::Object#stubここ
def test_bar
a = A.new
# use stubbed_foo in a instead of foo
a.stub :foo, 5 do
result = a.bar
# some assert
end
end
を探していると思う
これはまさに私が 探している。今度はbarがfooを2回呼び出すと、すべての呼び出しでスタブが異なる値を返すようにしたいのですが?例えば。それをスタブするので、fooの最初の呼び出しで5を返し、2番目の呼び出しで7を返します。 –
@VáclavPruner更新を参照してください。期待値を返すには、呼び出し可能なオブジェクトが必要です。このケースでは、リクエストを処理するために 'lambda'と' Enumerator#next'を使いました – engineersmnky