ruby on rails - RSpec passing variable or (let variable) to it block -



ruby on rails - RSpec passing variable or (let variable) to it block -

here's code have spec wrote. trying each array(payments), when seek add together allow variable on top of block it's telling me variable or method not exist. assuming variable not beingness called.

can take @ how should reogranize spec can this:

payments.each |p| "updates payment record of #{p.id} status of #{p.status}" payments.each |p| payment = payment.find_by_id(p.id) payment_status = payment.status payment_status = p.status subject expect(payment.find_by_id(p.id).status).to_not eq(payment_status) end end end

original spec code:

describe "patch #submit" subject { patch :pay, :payment => [payments] } context "when submission valid" let(:payments) { [] } let(:admin) { factorygirl.create(:admin) } let(:member) { factorygirl.create(:member) } let(:user) { factorygirl.create(:user } before :each rand(2..4).times { payments << factorygirl.create(:payment, :payor => member, :merchant => user) } sign_in admin end "updates status of payment" p = payments.sample #get random payment submitted payment = payment.find_by_id(p.id) payment_status = payment.status subject p.reload expect(p.status).to_not eq(payment_status) end "updates record in array" payments.each |p| payment = payment.find_by_id(p.id) payment_status = payment.status payment_status = p.status subject expect(payment.find_by_id(p.id).status).to_not eq(payment_status) end end end end

stack trace:

kareem@kareem-vaio:~/git/dns$ bundle exec rspec ./spec/controllers/payments_controller_spec.rb:320 coverage study generated rspec /home/kareem/git/dns/coverage. 256 / 673 loc (38.04%) covered. /home/kareem/git/dns/spec/controllers/payments_controller_spec.rb:320:in `block (3 levels) in <top (required)>': undefined local variable or method `payments' #<class:0x007f91b6085b70> (nameerror) /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:325:in `module_exec' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:325:in `subclass' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:219:in `block in define_example_group_method' /home/kareem/git/dns/spec/controllers/payments_controller_spec.rb:300:in `block (2 levels) in <top (required)>' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:325:in `module_exec' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:325:in `subclass' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:219:in `block in define_example_group_method' /home/kareem/git/dns/spec/controllers/payments_controller_spec.rb:298:in `block in <top (required)>' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:325:in `module_exec' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:325:in `subclass' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:219:in `block in define_example_group_method' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/dsl.rb:41:in `block in expose_example_group_alias' /home/kareem/git/dns/spec/controllers/payments_controller_spec.rb:3:in `<top (required)>' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `load' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `block in load_spec_files' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `each' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `load_spec_files' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:96:in `setup' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:84:in `run' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:69:in `run' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:37:in `invoke' /home/kareem/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/exe/rspec:4:in `<top (required)>' /home/kareem/.rbenv/versions/2.1.3/bin/rspec:23:in `load' /home/kareem/.rbenv/versions/2.1.3/bin/rspec:23:in `<main>'

you can't utilize variables defined let outside of specs. if want have available, define method on spec , utilize that.

this question seems similar, similar response.

ruby-on-rails ruby rspec

Comments

Popular posts from this blog

xslt - DocBook 5 to PDF transform failing with error: "fo:flow" is missing child elements. Required content model: marker* -

mediawiki - How do I insert tables inside infoboxes on Wikia pages? -

Local Service User Logged into Windows -