Фабрики
Создает/строит объект, а затем использовать его только тогда, когда призвали в испытании.
Вы определяете «счастливый путь» объекта, включая ассоциации, в одном файле (как упоминалось Райан), а затем просто поддерживаете один файл, когда ваши ассоциации схемы/модели меняются.
Светильники
мимики то, что база данных должна выглядеть для одной записи, она загружается в тестовую базу данных, а затем используется.
Светильники являются конечным состоянием модели и живут в базе данных, поэтому загружаются один раз и могут использоваться в тестах по вашему усмотрению.
Несколько файлов, и вы размещаете файлы вашего файла, чтобы каждый файл и ассоциация были позабочены.
NewModel.create (...)
создается один раз и используется один раз в одном тесте или в одном блоке before(:each)
Если у вас есть 100 таких блоков, то есть писать и поддерживать 100 различных объектов, не говоря уже об ассоциации как @user.profile.create(....)
100 раз.
Преимущества Фабрики над NewModel.create
Один файл для сохранения, а не заменяя и оглавлению мультипликатор build
или create
в ваших строках кода.
Примечание Надо сказать, что в моем наборе тестов я хочу, чтобы это было как можно быстрее, поэтому я сбросив FactoryGirl и использования Светильники и NewModel.create двигаться вперед. Просто чтобы посмотреть, ускорит ли он это. Я работаю над теорией о том, что FG замедляет мой сюиту, а также let()
и before(:each)
Контр-точки: все эти аргументы применимы и к светильникам. Светильники быстрее в целом. Любые другие причины? – DGM
@DGM Несмотря на то, что я использую, и мне нравится светильники, мне когда-то их трудно поддерживать. –