minitest Ruby を使用して関数が他の関数を適切に呼び出すかどうかをテストしたいのですが、ドキュメントからテストするための適切なアサートが見つかりません。
class SomeClass
def invoke_function(name)
name == "right" ? right () : wrong ()
end
def right
#...
end
def wrong
#...
end
end
describe SomeClass do
it "should invoke right function" do
# assert right() is called
end
it "should invoke other function" do
# assert wrong() is called
end
end
Minitest には、何らかのメソッドが呼び出されているかどうかを確認するための特別な .expect :call があります。
describe SomeClass do
it "should invoke right function" do
mocked_method = MiniTest::Mock.new
mocked_method.expect :call, return_value, []
some_instance = SomeClass.new
some_instance.stub :right, mocked_method do
some_instance.invoke_function("right")
end
mocked_method.verify
end
end
残念ながら、この機能はあまり文書化されていません。私はここからそれについて見つけました: https://github.com/seattlerb/minitest/issues/216