Si condividono i metodi in un modulo e si inserisce tale modulo nella cartella lib
.
Qualcosa di simile lib/fake_data.rb
contenente
module FakeData
def random_address
[Faker::Address.street_address, Faker::Address.city].join("\n")
end
module_function
end
e dentro il vostro compito rake richiedono solo il modulo, e chiamare FakeData.random_address
.
Ma, se è come un seme che devi fare ogni volta che esegui i test, dovresti considerare di aggiungere questo al tuo generale before all
.
E.g. il mio spec_helper
assomiglia a questo:
e il modulo SetupSupport
è definito in spec/support/setup_support.rb
e si presenta come segue:
module SetupSupport
def load_db_seed
load(File.join(Rails.root, 'db', 'seeds.rb'))
end
end
Non sono sicuro se è necessario caricare i semi, o lo stanno già facendo, ma questo è il posto ideale per generare anche dati falsi necessari.
Si noti che la mia classe di supporto di installazione è definita in spec/support
perché il codice è rilevante solo per le mie specifiche, non ho attività rake che richiede lo stesso codice.
Grazie per il vostro aiuto! In quale directory metteresti quella classe? – Tintin81
Sta a te. Probabilmente lo inserirò nella directory del controller. – BlackHatSamurai
Nooooo non la directory del controller. Questo è esattamente il motivo per cui esiste una cartella 'lib'. La cartella 'app/controller 'dovrebbe contenere solo controller. – nathanvda