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
コードを正しく動作させると、このテストは失敗します。これは、 stubsDevice.expects(:scope_by_ip_list)
も呼び出すためです。 aまたはそのようなものを指定していないため、 でメソッドをスタブ 化します。したがって、デバイスのリストを適切にスコープしてからさらに操作を行う私のコードでは、さらに操作が爆発します。Device.scope_by_ip_list
.returns(Devices.scoped)
nil
ただし、パラメーターを指定する必要はありません。.returns
パラメーターが何を返すかはまったく気にしないからです。メソッドをスタブしたくありません。私はそれに期待を設定し、そのまま機能させたいだけです.
それを行う方法はありますか?
(私には、次のようなことを言うのは非常にぎこちないように思えDevice.expects(:foo).returns('bar')
ます —私が言うとき、私はそのメソッドをスタブすると言っているのではありません! スタブしたい場合は、と言うことができます。)Model
method
Device.stubs(:foo)