Questa risposta ha una portata leggermente più ampia della tua domanda, ma penso che diventi la base di ciò che stai cercando di fare, e sarà la più semplice e la più gestibile.
Penso che quello che cerchi davvero sia fabbriche. Prova a utilizzare qualcosa come factory_girl, che renderà molti test molto più semplici.
In primo luogo, si sarebbe creato una fabbrica per creare qualsiasi tipo di oggetto è si sta testando, e utilizzare una sequenza per l'attributo e-mail:
FactoryGirl.define do
factory :model do
sequence(:email) {|n| "person#{n}@example.com" }
# include whatever else is required to make your model valid
end
end
Poi, quando hai bisogno di attributi validi, è possibile utilizzare
Factory.attributes_for(:model)
È inoltre possibile utilizzare Factory.create
e Factory.build
per creare salvati e non salvati istanze del modello.
C'è una spiegazione di molte più funzioni nello getting started document, nonché le istruzioni su come aggiungere fabbriche al progetto.
La risposta breve è no, non esiste qualcosa come 'static' in Ruby. Perché non lasciare che il database gestisca la chiave di auto-incremento? – Emily
Perché è un metodo per generare attributi validi per il test di Rspec e alcune cose devono essere uniche. – Zequez