Post

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を指定するのが味噌
This post is licensed under CC BY 4.0 by the author.