Sto provando a verificare il seguente scenario:Modo corretto di testare "associazioni" con Rspec?
-> Ho un modello chiamato Team che ha senso quando è stato creato da un utente. Pertanto, ogni istanza del team deve essere correlata a un utente.
Al fine di verificare che, ho fatto quanto segue:
describe Team do
...
it "should be associated with a user" do
no_user_team = Team.new(:user => nil)
no_user_team.should_not be_valid
end
...
end
Il che mi costringe a cambiare il modello di team come:
class Team < ActiveRecord::Base
# Setup accessible (or protected) attributes for your model
attr_accessible :name, :user
validates_presence_of :name
validates_presence_of :user
belongs_to :user
end
Vi sembra giusto per te? Sono solo preoccupato di rendere l'attributo: user come accessibile (assegnazione di massa).
Che cosa significa in realtà shoulda test? Voglio assicurarmi che quando viene creata una nuova squadra, in realtà appartenga a un utente. –
'Shoulda' verificherà che, esso" farà in modo che la relazione belong_to esista "(http://rubydoc.info/github/thoughtbot/shoulda-matchers/master/Shoulda/Matchers/ActiveRecord#belong_to-instance_method). Quindi, puoi tranquillamente presumere che quando creerai un nuovo Team apparterrà ad un utente. –
L'ho appena testato e sono in grado di creare una squadra senza specificare un utente. Shoulda sembra controllare solo se appartiene_esistere nel modello. Voglio essere sicuro che una squadra abbia un utente associato ... Credo che devo convalidare che c'è una presenza dell'Utente associato quando si crea una squadra ... –