4

たとえば、私はクラス 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で似たようなものを作ることは可能ですか?

4

1 に答える 1

1

これはあなたのためにトリックを行います:

A.any_instance.stub(:my_method) do |*args|
    instance = RSpec::Mocks::space.send(:receivers).last
end

ここのrspecコードからこれを掘り出しました:rspec githubコード

PS : これは完全に rspec の実装に依存しており、将来変更される可能性があります。ここで説明する背景は少し複雑です。今後追加するかもしれません。

于 2012-10-19T20:13:49.873 に答える