質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.33%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

74閲覧

rspecが通過しない

gomes_2222

総合スコア96

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2025/02/08 02:17

実現したいこと

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

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

get test_path だと index でなく show に行くと思うのだが。
で、
show だと params: { test_id: test.id } ではなく params: { id: test.id }
だと思うのだが。

code 隠しすぎ。隠すときに 修正間違えていない?

投稿2025/02/08 10:07

winterboum

総合スコア23616

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.33%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問