0

我需要部分嘲笑:

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

你能帮助我吗?谢谢

4

1 回答 1

0

我通常使用RR,它实现了允许您在不覆盖方法本身的情况下对方法创建期望的代理:

语法有点不同。这是一个典型的模拟:

mock(real_model).meth1 { mock_return_value }

如您所描述的,代理模拟将处理该问题:

mock.proxy(real_model).meth1

仍然必须满足期望,但您的原始实现已执行。

于 2013-10-02T21:47:00.990 回答