使用 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
,并且由于我没有指定 a.returns(Devices.scoped)
或类似的东西,它使用nil
. 因此,在我的代码中,它正确地定义了一个设备列表,然后进行了进一步的操作,进一步的操作就会崩溃。
不过,我不想指定参数,因为我完全不在乎它返回什么。.returns
我根本不想存根该方法!我只是想对它设定一个期望,让它按原样运行。
有没有办法做到这一点?
(对我来说,说这样的话似乎很尴尬Device.expects(:foo).returns('bar')
——当我说Model
期望 method
时,我并不是说要存根该方法!我们可以说Device.stubs(:foo)
,如果我们想存根它。)