What's the difference between the build and create methods in FactoryGirl?

后端 未结 3 1358
时光取名叫无心
时光取名叫无心 2020-12-13 01:59

The Factory Girl introduction delineates the difference between FactoryGirl.build() and FactoryGirl.create():

# Returns a User inst         


        
3条回答
  •  野趣味
    野趣味 (楼主)
    2020-12-13 02:34

    FactoryGirl.create() will create new object and associations (if the factory has any) for it. They will all be persisted in a database. Also, it will trigger both model and database validations. Callbacks after(:build) and after(:create) will be called after the factory is saved. Also before(:create) will be called before the factory is saved.

    FactoryGirl.build() won't save an object, but will still make requests to a database if the factory has associations. It will trigger validations only for associated objects. Callback after(:build) will be called after the factory is built.

    Note that in most cases when testing models are best to use build_stubbed for better performance. Read more about it here.

提交回复
热议问题