実現したいこと
rspecのコントローラーのテストで、特定のメソッドが呼び出されたかだけテストしたい(メソッドの中身は別でテストしているので。)
発生している問題・分からないこと
どうやってもエラーになります。コントローラーの処理自体はエラーなく終わっているはずなのに、メソッドが呼び出されていないとでます。
エラーメッセージ
error
1 2```ruby 3expected: 1 time with any arguments 4 received: 0 times with any arguments
### 該当のソースコード ```ruby class TestController < ActionController::Base def index test = Test.find(param[:test_id]) test.method redirect other_action end end
let!(:test) { create :test } it "呼び出されること" do get test_path(params: { test_id: test.id }) expect(test).to have_received(:method) end
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
こんな感じにしてみたけどダメでした。結果は変わらず。メソッドが呼び出されてないと出ます。
ruby
1it "呼び出されること" do 2test = instance_double(Test) 3 allow(Test).to receive(:new).and_return(test) 4 allow(test).to receive(:method) 5get test_path(params: { test_id: test.id }) 6expect(test).to have_received(:method) 7end 8
補足
特になし

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。