我正在为大批代码添加单元测试,并且正在寻找一种方法来插入虚假方法以进行测试。问题是,据我所知,在Ruby中,要在一个方法中传递方法必须使用ClassName.method(:method_name)
,然后重构我正在测试的方法以使用boo.call()
而不是boo()
}。有没有比使用.method
和.call
重构所有内容更简单的方法?
答案 0 :(得分:1)
为什么不通过lambdas?我的意思是,lambda只是一个匿名方法/函数,因为你从其他语言中知道它,所以它应该工作正常。例如:
fake_method = lambda { |n| "do something with n" }
def other_method(fm)
#...
fm.call
#...
end
other_method(fake_method)
您仍然需要拨打.call