Ho visto tonnellate di queste domande, ma nessuna delle loro soluzioni funziona per me. Ho un singolo test in questo modo:Livello di stack troppo profondo - 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
Semplice, semplice, semplice. Eppure ottengo l'errore tipico:
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
e io sono tutto simile ... cosa? Di nuovo ho letto dozzine di domande su questo e sembra essere qualcosa con la factory girl, ma non riesco a vedere quale sarebbe il problema qui. Ho un sacco di altri test che istanziano un oggetto basato su una fabbrica come questo senza alcun problema.
Che aspetto ha il tuo stacktrace? In ogni caso, dovrai condividere le tue fabbriche per ottenere un aiuto più specifico rispetto alle domande correlate. –
fai attenzione con 'let' - è pigro. Quando il test esegue 'sign_in admin', istanzia l'' admin' prima dell'esecuzione del test, ma non 'user' o' adminRole'. – zetetic
Non sembra essere correlato a Rspec. Ho ottenuto lo stesso errore sulla stessa linea di instrumenter di ActiveSupport eseguendo uno script solo in modalità di produzione, con Rspec escluso su quell'ambiente. Sto anche eseguendo Ruby 2.0.0-p247 e Rails 4. –