1

私は rspec3 を使用しており、新しい二重メソッド検証機能を理解しようとしています。次のように、ページ分割された配列の double を作成したいと思います。

my_array = object_double([])
allow(my_array).to receive(:current_page).and_return(1)

ただし、これにより次のエラーが発生します。

Double[...] does not implement: current_page

これは、rspec が object_double を指定すると検証用の double を作成するためです。のようなものに応答する偽の配列 double を作成したくありません:[]mocks.verify_partial_doubles = falseおそらくobject_doubleが検証を目的としているため、グローバルに設定しても役に立ちません(また、この問題のやり過ぎのようです)。

配列を2倍にする前に配列にページ番号を付けることができることは知っていますが、これを行う必要があるとは感じません。足りないものはありますか?メソッドごとに検証を無効にする機能を提供する rspec を要求する必要がありますか、または非検証オブジェクト double を作成する機能を提供する必要がありますか、またはこのテストを別の方法で作成する必要がありますか?

その間、私は次のように書くことができます:

  products = Class.new(SimpleDelegator) do
    def current_page
      1
    end
    def per_page
      1
    end
    def total_entries
      1
    end
  end.new([])

...しかし、もはや単純な rspec モックのようには見えません。

4

0 に答える 0