Respuesta
(esta respuesta obras en los carriles 3.0.7)
he encontrado el problema es cómo se configura la Gemfile - que tiene que hacer algo en la línea de
gem 'factory_girl'
group :test do
gem 'factory_girl_rails'
end
encontramos problemas que tiene factory_girl_rails outsi del entorno de prueba, que no logramos llegar al final (¿algo relacionado con la forma en que los raíles hacen el almacenamiento en caché?)
Una vez hecho esto, me gustaría cargar los datos de una biblioteca en lib, algo así como ...
require 'factory_girl'
require 'spec/factories/user_factory'
module Seeds
class SampleUsers
def self.run
u = Factory(:user)
end
end
Y a continuación, ejecutar este método desde dentro db: semilla mediante
Seeds::SampleUsers.run
Consulte el comentario de Hubble sobre la respuesta de Michael para una forma alternativa de hacer que Gemfile funcione. Parece que factory_girl_rails es seguro para requerir en db/seeds, pero no debería ser solicitado automáticamente por Rails a través de Bundler. Para evitar que eso ocurra, conjuntos de hubble: require => false. –
¡Gran respuesta! Justo lo que necesitaba. Descubrí que recibiría errores si tuviera las dos declaraciones requeridas. Entonces no los tengo en mi implementación. – caspyin
En los carriles 4, esto ya no es necesario: puede salirse con la grupo: desarrollo,: Prueba de hacer Gem '' factory_girl_rails A continuación, sólo requieren '' factory_girl_rails en lib/tareas/sample_data.rake. –
puede insertar el siguiente código en su spec_helper.rb, y hacer algunos ejemplos de los datos que desee (en este caso "productos" del archivo yaml):
seeds_file = File.join(Rails.root, 'db', 'seeds.yml')
config = YAML::load_file(seeds_file)
config["products"].each do |product|
FactoryGirl.create(:product, product) if !Product.find_by_name(product['name'])
end
Todo lo que necesita hacer es añadir "requieren 'factory_girl_rails'" hacer el PP /seeds.rb archivo. Esto te dará acceso a tus fábricas.
Esto es genial, pero asegúrese de que: require => false está en su Gemfile para factory_girl_rails, de lo contrario causa problemas de dependencia de inicialización cuando intenta db: migrar y las fábricas representan modelos que aún no ha migrado. - Y luego necesitarás requerir 'factory_girl_rails' en tu spec_helper después de eso. –
en db/seeds.rb
require 'factory_girl_rails'
10.times do
FactoryGirl.create :user
end
FactoryGirl.create_list (: user, 10) –
Josh Clayton, el sustentador de factorygirl, recommends against using FactoryGirl in your seeds file. Sugiere utilizar ActiveRecord normal en su lugar.
Un buen argumento para querer usar Factory Girl en las semillas es que nuestras semillas ActiveRecord se siguen rompiendo cada vez que alguien actualiza la API. Se rompe sin previo aviso. Para protegerse de eso, queremos que el archivo semilla esté cubierto por la prueba. Factory Girl puede ayudar con la siembra y la prueba. –
- 1. ¿Cómo usar Cucumber and Factory Girl juntos?
- 2. Factory Girl y has_one
- 3. Fábricas dependientes en Factory Girl
- 4. Atributos dependientes en Factory Girl
- 5. Comparando Factory Girl con fabricación
- 6. Cómo crear asociaciones has_and_belongs_to_many en Factory Girl
- 7. Argumentos adicionales para Factory Girl
- 8. ¿Cómo usar Pry dentro de Factory Girl Rails?
- 9. Secuencias Factory Girl sin incrementar
- 10. ¿Cómo puedo definir varios objetos asociados usando Factory Girl?
- 11. Crear usuarios en Factory Girl con OmniAuth?
- 12. Rails 3.2, RSpec, Factory Girl: NameError: constante no inicializada Factory
- 13. Factory Girl: Asignación automática de objetos principales
- 14. error Factory Girl con relación has_many
- 15. Silenciando el registro de Factory Girl
- 16. Rieles: Factory Girl no puede secuenciar
- 17. Factory Girl has_many múltiple a través es
- 18. cómo definir la asociación polimórfica con factory girl
- 19. Creando instancias con atributos únicos usando Factory Girl
- 20. Prueba del controlador con RSpec, Devise, Factory Girl
- 21. Factory Girl vs. User.create: ¿cuál es la diferencia?
- 22. Factory Girl crear asociación con el objeto existente
- 23. Setup Factory Girl with Test :: Unit and Shoulda
- 24. ¿Existe un framework como Factory Girl para Java?
- 25. ¿Error de fábrica duplicado con rspec y factory girl?
- 26. Asociaciones de Factory Girl con Discrepancia de Spork
- 27. ¿Cómo crear/crear varias instancias de una fábrica en Factory Girl?
- 28. Cómo usar Spring's ThreadPoolExecutorFactoryBean factory bean
- 29. Factory Girl: ¿Cómo asociar un registro a otro registro sin crear un nuevo registro?
- 30. Newbie de Factory Girl: Cómo crear un nuevo registro solo si ya no existe
db/seeds.rb debe contener datos básicos específicos de producción que su sitio necesita para ejecutar. Las fábricas solo deberían usarse en sus pruebas, lo que le ayuda a ejecutar operaciones de forma aislada. ¿Estás tratando de acortar tu DB/semillas o algo así? – mnelson