Ich habe eine neue Aktion, die einen Kreis angelegt und mit dem aktuellen Elternteil als Administrator:RSpec - Testen Instanzvariablen innerhalb einer Steuerung
def new
return redirect_to(root_path) unless parent
@circle = Circle.new(administrator: parent)
end
ich, dass die Administrator-ID zu testen, ich versuche, richtig eingestellt ist, und habe meine Prüfung als solche ausgeschrieben:
context 'with a parent signed in' do
before do
sign_in parent
allow(controller).to receive(:circle).and_return(circle)
allow(Circle).to receive(:new).and_return(circle)
end
it 'builds a new circle with the current parent as administrator' do
get :new
expect(@circle.administrator).to equal(parent)
end
end
Dies wirft natürlich einen Fehler als @circle
nil
ist. Wie kann ich auf das neue Objekt zugreifen, das noch nicht von meinen Controller-Tests gespeichert wurde? Ich vermute, es ist eine Vielzahl von erlauben/lassen, aber wie ich schon sagte alle meine Recherchen haben bisher nichts ergeben.
Leider ist rspec-rails derzeit hinter dem Stand der Technik zurück und die Dokumentation spiegelt nicht wirklich die Verschiebung der Testmethodik wider kam mit Rails 5. Controller-Spezifikationen sind jedoch auf dem Weg nach draußen, da sie auf Komponenten angewiesen sind, die in der nahen Zukunft gerissen werden können. – max
Ich dachte, dass ich mich wahrscheinlich zuerst an den Fehler gewagt hätte - es kam mir nicht in den Sinn, die Tests im Modell selbst durchzuführen. Ich habe für jetzt verwendet, die funktioniert, wird jedoch strukturieren, wie Sie in der Zukunft vorgeschlagen haben. Danke für die Hilfe. – Mark