Ich habe Tonnen dieser Fragen gesehen, aber keine ihrer Lösungen funktionieren für mich. Ich habe einen einzigen Test wie folgt:Stack-Ebene zu tief - Rspec
describe RolesController do
describe "#delet" do
context "When the user is logged in" do
let(:user) {FactoryGirl.create(:user)}
let(:admin) {FactoryGirl.create(:admin)}
let(:adminRole) {FactoryGirl.create(:adminRole)}
it "Should allow admins to delete roles" do
sign_in admin
put :destroy, :id => adminRole.id
end
end
end
end
Einfach, einfach, einfach. Aber ich bekomme den typischen Fehler:
1) RolesController#delet When the user is logged in Should allow admins to delete roles
Failure/Error: Unable to find matching line from backtrace
SystemStackError:
stack level too deep
# /home/adam/.rvm/gems/ruby-2.0.0-p247/gems/activesupport-4.0.0/lib/active_support/notifications/instrumenter.rb:23
und ich bin alle wie ... was? Wieder habe ich Dutzende von Fragen dazu gelesen und es scheint etwas mit Fabrikmädchen zu sein, aber ich kann nicht sehen, was das Problem hier wäre. Ich habe Tonnen von anderen Tests, die Factory-Girl-basierte Objekt wie diese ohne Problem instanziiert.
Wie sieht Ihr Stacktrace aus? In jedem Fall müssen Sie Ihre Fabriken freigeben, um spezifischere Hilfe als in den verwandten Fragen zu erhalten. –
sei vorsichtig mit 'Let' - es ist faul. Wenn Ihr Test "sign_in admin" ausführt, instanziiert er den "admin" vor dem Ausführen des Tests, aber nicht den "user" oder "adminRole". – zetetic
Es scheint nicht mit Rspec verwandt zu sein. Ich habe den gleichen Fehler in der gleichen Zeile des ActiveSupport-Geräts, wenn ich nur ein Skript im Produktionsmodus ausführe, wobei Rspec in dieser Umgebung ausgeschlossen ist. Ich laufe auch Ruby 2.0.0-p247 und Rails 4. –