mockの使い方
基本
mock = Minitest::Mock.new.expect(:method_name, 'return_value', ['param1', 'param2'])
mock.method_name('param1', 'param2') # <= return value is 'return_value'
mock.verify # <= true
第一のメソッド名、第二の戻り値までは必須
応用
入れ子
mock2 = Minitest::Mock.new.expect(:second, 'second value')
mock1 = Minitest::Mock.new.expect(:first, mock2)
mock1.first.second #<= 'second value'
stubと組み合わせる
class Animal
def self.cat
self.call_cat
end
def self.call_cat
'miaow'
end
end
mock = Minitest::Mock.new
mock.expect(:call, 'wan')
Animal.stub(:calc, mock) do
Animal.cat #<= wan
end
callを指定するのが味噌