でな、話は変わるけど、モック?スタブ?よくわからんけど

allow(モックオブジェクト).to receive(メソッド名) ってやるやつ
あれは、letかsubjectに入れちゃえばいいと思うんだよ。

だって、Givenに相当するものだろ?
だからitの中っておかしいと思うんだ

で、itの中はexpectだけにする

expect(モックオブジェクト).to receive(メソッド名) でもテストできるけど
それだとWhen実行前に書かないといけないので

expect(オブジェクト).to have_received(:メドッド名).once

こっちを使うべきなんだろうな

rspec-mocksのSpyという機能を使います
https://qiita.com/_am_/items/398b0782fa3754ff3878

そうすると、Given Then パターンだと

subject { allow(オブジェクト).to recieve(:メソッド) }

it 'ほにゃらら' do
 is_expected.to なになに
 expect(オブジェクト).to have_recieved(:メソッド)
end

という形になる。まあGivenの部分とThenの部分の両方で
同じようなコードを書く必要がるというデメリットはあるな
これはallowの方に名前をつけて、そのallowが呼ばれたことという形でかければ良いんじゃないかな?