【发布时间】:2012-05-08 16:18:01
【问题描述】:
使用 MiniTest::Spec 和 Mocha:
describe "#devices" do
it "scopes the devices by the provided :ip_list" do
ips = 'fast tests ftw!'
ds = DeviceSearch.new ip_list: ips
Device.expects(:scope_by_ip_list).once.with(ips)
ds.devices
end
end
当我使代码正常工作时,此测试将失败,因为调用 Device.expects(:scope_by_ip_list) 也 stubs Device.scope_by_ip_list,并且由于我没有指定 .returns(Devices.scoped) 或类似的,它用nil 存根方法。所以,在我的代码中,它正确地定义了一个设备列表,然后进行了进一步的操作,进一步的操作就会崩溃。
我不想想要指定一个.returns 参数,因为我完全不在乎它返回什么。我根本不想存根该方法!我只是想对它设定一个期望,让它按原样运行。
有没有办法做到这一点?
(对我来说,说Device.expects(:foo).returns('bar') 之类的话似乎很尴尬——当我说Model 期望 method,我不是说存根那个方法!如果我们想存根它,我们可以说Device.stubs(:foo)。)
【问题讨论】:
标签: ruby-on-rails stub mocha.js expectations