我正在使用rspec3而我正在尝试处理新的双重方法验证功能。我想为这样的分页数组创建一个double:
my_array = object_double([])
allow(my_array).to receive(:current_page).and_return(1)
但是,这会导致此错误:
Double[...] does not implement: current_page
这是因为rspec在给定object_double时会创建一个验证双精度数。我真的不想尝试创建一个假的数组double来响应像:[]
这样的事情。全局设置mocks.verify_partial_doubles = false
也没有帮助(对于这个问题似乎也有点过分),可能是因为object_double旨在进行验证。
我知道我可以在制作它的两倍之前对我的数组进行分页,但我觉得我不应该这样做。有什么我想念的吗?我是否应该请求rspec提供基于每个方法禁用验证的能力,或者提供创建非验证对象的能力,或者我应该以其他方式编写此测试吗?
在此期间,我可以这样写:
products = Class.new(SimpleDelegator) do
def current_page
1
end
def per_page
1
end
def total_entries
1
end
end.new([])
...但它看起来不再是一个简单的rspec模拟。