たとえば、私はクラス A を持っています。
class A
end
そして、スタブ化されたメソッドからそのクラスの仕様戻りインスタンスが必要です。
A.any_instance.stub(:my_method).and_return(<here is the same instance on which my_method is called should got>)
RSpecで似たようなものを作ることは可能ですか?
これはあなたのためにトリックを行います:
A.any_instance.stub(:my_method) do |*args|
instance = RSpec::Mocks::space.send(:receivers).last
end
ここのrspecコードからこれを掘り出しました:rspec githubコード
PS : これは完全に rspec の実装に依存しており、将来変更される可能性があります。ここで説明する背景は少し複雑です。今後追加するかもしれません。