ruby rspec:在模拟对象期望方法参数上设置任意约束

时间:2012-06-14 01:00:33

标签: ruby rspec mocking

如何约束传递给RSpec中模拟对象的方法的允许参数值? (假设先前已对该模拟对象设置了期望)

例如,我想做这样的事情:

@myMockObject.should_receive(:logValue).at_least(:once).with(anything(), should be > 0)

也就是说,我想指定@myMockObject接收对logValue()的方法调用,其中包含第一个参数的任何内容以及第二个参数的任何大于0的整数。不幸的是,上面的代码不能像写的那样工作。有一个简单的方法吗?

1 个答案:

答案 0 :(得分:1)

@myMockObject.should_receive(:log_value) do |arg1, arg2|
  arg2.should be > 0
end.at_least(:once)