En la última versión de FactoryGirl, algunos métodos sintácticos como Factory.create
se depreciaron a favor de varios otros, más notablemente FactoryGirl.create
y el más simple create
.No está claro cuándo utilizar una sintaxis FactoryGirl específica
Sin embargo, la experiencia muestra que ciertas sintaxis no siempre son apropiadas dado el contexto.
Tomemos, por ejemplo:
FactoryGirl.define do
factory :article do
after_create {|a| a.comments << create(:comment) }
end
factory :comment do
end
end
Dónde Comentarios del artículo has_many y Comentarios belongs_to artículo. En las fábricas anteriores, a.comments << create(:comment)
emite el error Comment(#nnn) expected, got FactoryGirl::Declaration::Static
. Cambie esa línea al a.comments << FactoryGirl.create(:comment)
y el error desaparece.
No está claro cuándo una sintaxis debe tener prioridad sobre cualquier otra forma.
Eres un maldito salvavidas. Solo voy a usar la larga sintaxis. Mejore algunas pulsaciones de teclas extra que horas de eliminación de errores. –
Le pregunté esto hace un año, y he estado usando el formato largo desde entonces. Sí, estoy de acuerdo, menos rasguños en la cabeza. – IAmNaN