2016-04-26 12 views
0

私は親と子供を作り出す工場を持っていた私の以前のquestionにピギーバックしています。私は単体テストを実行しており、単純なものは通過していません。工場の女の子MiniTest

test "invoice can save" do 
    invoice = build(:invoice) 
    assert invoice.save, "Error message: #{invoice.errors.full_messages}" 
end 

次のエラーを返します。

エラーメッセージ:[ "ツアーは空白にすることはできません"]

しかし、次のコードは動作します。

test "invoice can save" do 
    invoice = create(:invoice) 
    assert invoice.save, "Error message: #{invoice.errors.full_messages}" 
end 

私が理解していることは、buildは、保存が呼び出されるまでメモリに保持されているはずです。データベースに正常に保存されているかどうかを確認する最初のテストはありませんか?

答えて

1

以前の質問のFactoryに基づいて、before_createを呼び出してtripを設定しています。ただし、オブジェクトを作成していない場合は、buildです。

before_createafter_buildに変更した場合、それはとなるはずですそのパニックテストを解決してください!

は、ここで第一

+1

は形容詞こせこせをご利用いただき、誠にありがとうございFactoryGirlで利用可能な「コールバック」についてThoughtbotsからold articleに役立つリンクです。 2これと私とリンクされた質問を掘り下げてくれてありがとう。 レビューをリンクした記事を必ず伝えます。 – CheeseFry

+0

喜んで誰かがいくつかの楽しい形容詞LOL :)を高く評価し、応答がより大きなテストの問題を解決するのを助けたと願っています! –