Rspec stub_chain 带参数

Rspec stub_chain with arguments

我知道我可以做到以下几点:

Foo.stub_chain(:bar, :baz).with(:marflar).with(:quux)

这会打断对

的调用
Foo.bar(:marflar).baz(:quux)

但是如果我想删除提供给 baz 的参数,我该怎么办?即

Foo.bar(:marflar).baz

要匹配不带任何参数的调用,您可以使用with(no_args)。如果您不关心参数,请使用 with(any_args)。有more matchers available.

所以要匹配这个:

Foo.bar(:marflar).baz

使用这个:

# expect no arguments
Foo.stub_chain(:bar, :baz).with(:marflar).with(no_args)
# expect 0 or any arguments
Foo.stub_chain(:bar, :baz).with(:marflar).with(any_args)