[解決済み] ファクトリーガールとRspecのコールバックのスキップ
2022-05-13 18:48:43
質問
作成後のコールバックがあるモデルをテストしていますが、テスト中に時々しか実行したくありません。ファクトリーからコールバックをスキップ/実行するにはどうしたらよいでしょうか。
class User < ActiveRecord::Base
after_create :run_something
...
end
工場です。
FactoryGirl.define do
factory :user do
first_name "Luiz"
last_name "Branco"
...
# skip callback
factory :with_run_something do
# run callback
end
end
どのように解決するのですか?
ベストな解決策かどうかはわかりませんが、私はこの方法を用いて実現することに成功しました。
FactoryGirl.define do
factory :user do
first_name "Luiz"
last_name "Branco"
#...
after(:build) { |user| user.class.skip_callback(:create, :after, :run_something) }
factory :user_with_run_something do
after(:create) { |user| user.send(:run_something) }
end
end
end
コールバックなしで実行。
FactoryGirl.create(:user)
コールバックで実行する。
FactoryGirl.create(:user_with_run_something)
関連
-
[解決済み] 該当するルートがない [GET] "demo/hello"
-
[解決済み] erbでコメントを追加する最適な方法
-
[解決済み] どなたか、collection_selectをわかりやすく説明していただけませんか?
-
[解決済み] rspec 3 - クラスメソッドをスタブ化する
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] Rubyのクラスで未初期化の定数エラーが発生する
-
[解決済み] Devise Admin Roleの追加【終了しました
-
[解決済み] Railsコントローラからホスト名を取得する
-
[解決済み] railsで':remote => true'はどのように動作するのでしょうか?
-
[解決済み] Heroku: 既存のrailsアプリにseeds.rbをプッシュする方法?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] サーバーに接続できませんでした。そのようなファイルまたはディレクトリがありません (PG::ConnectionBad)
-
[解決済み] nil:NilClass の未定義メソッド `each'... なぜでしょうか?
-
[解決済み] 新規ユーザー作成時に ActiveModel::ForbiddenAttributesError が発生する。
-
[解決済み] rails erb フォームヘルパー options_for_select :selected
-
[解決済み] Railsです。gemを使った特定バージョンのライブラリのアンインストール
-
[解決済み] railsでhidden fieldタグを使用する方法
-
[解決済み] Rails / Haml: 投稿フォームを作成するには?
-
[解決済み] Railsはsaveでモデル内の検証をスキップしますか?
-
[解決済み] 属性を割り当てる場合、引数としてハッシュを渡す必要がある
-
[解決済み] レイル 4 radio_button_tag default not selected