1

クラスがインスタンス化され、特定のメソッドが呼び出されることを期待できるように、クラスをモックしようとしています。

私は試した:

    expect(MyPolicy).
      to receive(:new).
      and_wrap_original do |method, *args|
        expect(method.call(*args)).to receive(:show?).and_call_original
      end

しかし、私が得ているのは次のとおりです。

未定義のメソッド「show?」#RSpec::Mocks::VerifyingMessageExpectation:0x0055e9ffd0b530 の場合

ブロックを提供し、最初に元のメソッド (:new と :show? の両方、最初にバインドする必要がありました) を呼び出してみましたが、エラーは常に同じです。

については知ってexpect_any_instance_ofいますが、コードの匂いと見なされているため、適切に行う別の方法を見つけようとしています。

コンテキスト: 専門家のポリシーがあり、それが呼び出されたかどうかを確認したい

私も試しましたが、同じエラーが発生しました:

    ctor = policy_class.method(:new)

    expect(policy_class).
      to receive(:new).
      with(user, record) do
        expect(ctor.call(user, record)).to receive(query).and_call_original
      end
4

1 に答える 1