私は 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 モックのようには見えません。