RSpecで "any_instance" "should_receive "を何度でも言う方法
2023-10-16 05:31:43
質問
railsでインポートコントローラを作成し、複数のレコードを含む複数のcsvファイルをデータベースにインポートしています。RSpecを使って実際にレコードが保存されるかどうかテストしてみたいと思います。
<Model>.any_instance.should_receive(:save).at_least(:once)
というエラーが出ます。
The message 'save' was received by <model instance> but has already been received by <another model instance>
コントローラーの工夫された例です。
rows = CSV.parse(uploaded_file.tempfile, col_sep: "|")
ActiveRecord::Base.transaction do
rows.each do |row|
mutation = Mutation.new
row.each_with_index do |value, index|
Mutation.send("#{attribute_order[index]}=", value)
end
mutation.save
end
RSpecを使ってテストすることは可能でしょうか、それとも何か回避策があるのでしょうか?
どのように解決するのですか?
新しい構文があります。
expect_any_instance_of(Model).to receive(:save).at_least(:once)
関連
-
[解決済み】なぜRuby on Railsは、http://localhost:3000 の代わりに http://0.0.0.0:3000 を使用するのですか?
-
[解決済み] Rubyの文字列から日付への変換
-
[解決済み] Rails のインストールに失敗する: activesupport には Ruby のバージョン >= 2.2.2 が必要です。
-
[解決済み] ウェブパッカーがアプリケーションを見つけ出せない
-
[解決済み] Railsで `before_action` での `only:` はどのように機能するのですか?
-
[解決済み] railsでhidden fieldタグを使用する方法
-
[解決済み] Rubyで乱数を取得する方法
-
[解決済み】RSpecのテストを1つだけ実行するには?
-
[解決済み】RSpecで単一のテスト/仕様ファイルを実行するにはどうすればよいですか?
-
[解決済み] RSpecで "should_receive "を何度も言うには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】なぜRuby on Railsは、http://localhost:3000 の代わりに http://0.0.0.0:3000 を使用するのですか?
-
[解決済み】Bundler: コマンドが見つからない
-
[解決済み】Rails。Ruby on Railsの移行でデータベースカラムの名前を変更するにはどうすればよいですか?
-
[解決済み】コントローラでJSONをレンダリングする
-
[解決済み】コレクションをDESCで並べる方法
-
[解決済み] gemのインストールができない - gemネイティブ拡張の構築に失敗 - そのようなファイルをロードできない -- mkmf (LoadError)
-
[解決済み] Rubyで変数をインクリメントする [重複]。
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] rails consoleを起動するとRailsのイニシャライザーが呼ばれる?
-
[解決済み] Heroku Error R14 (Memory quota exceeded): How do I solve this?