RSpec, Rack/Test, Sinatra message expectation always passes even though an error gets thrown -
testing whitelisting operation via given test:
require 'spec_helper' describe '/orders' describe 'post /order' 'whitelists attributes' expect_any_instance_of(logger).to_not receive(:warn) order = { account: "1234", user: "zach", } post '/order', order.to_json, {'content-type' => 'application/json'} end end end
jumping controller via pry shell prints error screen:
rspec::mocks::mockexpectationerror: (#<logger:0x007f2c4e5c4fc8>).warn(#<logger:0x007f2c4e5c4fc8 @progname=nil, @level=0, @default_formatter=#<logger::formatter:0x007f2c4e5c4f50 @datetime_format=nil>, @formatter=nil, @logdev=#<logger::logdevice:0x007f2c4e5c4f00 @shift_size=nil, @shift_age=nil, @filename=nil, @dev=#<io:<stdout>>, @mutex=#<logger::logdevice::logdevicemutex:0x007f2c4e5c4ed8 @mon_owner=nil, @mon_count=0, @mon_mutex=#<mutex:0x007f2c4e5c4e60>>>>) expected: 0 times arguments received: 1 time arguments: (#<logger:0x007f2c4e5c4fc8 @progname=nil, @level=0, @default_formatter=#<logger::formatter:0x007f2c4e5c4f50 @datetime_format=nil>, @formatter=nil, @logdev=#<logger::logdevice:0x007f2c4e5c4f00 @shift_size=nil, @shift_age=nil, @filename=nil, @dev=#<io:<stdout>>, @mutex=#<logger::logdevice::logdevicemutex:0x007f2c4e5c4ed8 @mon_owner=nil, @mon_count=0, @mon_mutex=#<mutex:0x007f2c4e5c4e60>>>>) /vagrant/vendor/bundle/ruby/2.1.0/gems/rspec-mocks-3.1.3/lib/rspec/mocks/error_generator.rb:213:in `__raise'
but test passes...
finished in 1 minute 2.38 seconds (files took 33.04 seconds load) 1 example, 0 failures randomized seed 17770
Comments
Post a Comment