[解決済み] FactoryGirlのbuildメソッドとcreateメソッドの違いは何ですか?
2022-10-31 03:06:27
質問
ファクトリーガールの紹介
との違いを説明します。
FactoryGirl.build()
と
FactoryGirl.create()
:
# Returns a User instance that's not saved
user = FactoryGirl.build(:user)
# Returns a saved User instance
user = FactoryGirl.create(:user)
私はまだこの2つの実用的な違いを理解していません。どなたか、どちらかを使って、もう一方は使わないという例を教えていただけませんか?ありがとうございます。
どのように解決するのですか?
この
create()
メソッドはモデルのインスタンスを持続させ、一方
build()
メソッドはモデルのインスタンスをメモリ上にのみ保持します。
個人的には
create()
メソッドを使うのは、DBに書き込むとテストに時間がかかるので、永続化が本当に必要なときだけです。
など。
で認証するユーザーを作成します。
create()
で認証するユーザーを作成し、認証エンジンがDBに問い合わせるからです。
モデルが属性を持つかどうかを確認するために
build()
メソッドで行うことができます。
it{Factory.build(:user).should respond_to(:name)}
更新情報
つまり、関連付けはもはやメモリ内ではなく、永続化されます。このことを心に留めておいてください。
関連
-
[解決済み] rake db:migrate db:reset とdb:schema:loadの違いについて
-
[解決済み] イコール、エクル、==、==の違いは何ですか?
-
[解決済み] Rubyのincludeとrequireの違いは何ですか?
-
[解決済み] クラスとモジュールの違い
-
[解決済み] Rubyのmapとcollectの違い?
-
[解決済み】Rubyのincludeとextendの違いって何?
-
[解決済み】Rubyの "and "と"&&"の違い?
-
[解決済み】Rubyのdupメソッドとcloneメソッドの違いとは?
-
[解決済み】Rubyのクラスインスタンス変数とクラス変数の比較
-
[解決済み] Hash each ループでインデックスにアクセスすることは可能ですか?
最新
-
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
-
[解決済み] Rubyで「逆レンジ」を繰り返し処理できないのはなぜですか?
-
[解決済み] ルビー 負の数を正の数に変換する?
-
[解決済み] ruby の rescue 節に複数のエラークラスを DRY に渡す方法
-
[解決済み] Capybaraで要素の正確なテキストをマッチングして要素を見つける方法
-
[解決済み] Rubyの配列で同じ文字列の要素をカウントする方法
-
[解決済み] Ruby初心者が注意すべきRuby Gotchasとは?[クローズド]
-
[解決済み] Rubyで既存のハッシュに追加する方法
-
[解決済み] MacでRubyを1.9.xにアップデートするには?
-
[解決済み] Rubyの基本的なプロジェクトはどのように設定するのですか?