我需要部分嘲笑:
class Post
def meth1; meth2; end
def meth2; nil; end
end
real_model = Post.new
mock_model = SomeMock.new real_model
mock_model.expect :meth1, true
mock_model.validate
mock_model.verify # should return true if #meth2 has worked and false otherwise
有SimpleMock(https://github.com/tatey/simple_mock),但似乎是这样 不接受部分嘲笑: https://github.com/tatey/simple_mock/issues/3
你能帮帮我吗?感谢答案 0 :(得分:0)
我通常使用RR,它实现了代理,允许您在不覆盖方法本身的情况下创建方法的期望:
语法略有不同。这是一个典型的模拟:
mock(real_model).meth1 { mock_return_value }
代理模拟会像你描述的那样处理问题:
mock.proxy(real_model).meth1
仍然必须满足期望,但执行原始实施。