Last active
August 29, 2015 14:11
-
-
Save celsoMartins/9b9935c07eaaa334d346 to your computer and use it in GitHub Desktop.
NoMethodError: undefined method `join' for #<String:0x007f62c3e6fb90>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Stacktrace: | |
26) UserAPI /post user with no parameters with no json | |
Failure/Error: before { post '/user' } | |
NoMethodError: | |
undefined method `join' for #<String:0x007f62c3e6fb90> | |
# ./spec/routes/user_api_spec.rb:7:in `block (5 levels) in <top (required)>' | |
Gemfile: | |
source 'http://rubygems.org' | |
ruby '2.1.3' | |
gem 'sinatra', '1.4.5', :require => 'sinatra/base' | |
gem 'tilt', '1.3.4' | |
gem 'mongoid' | |
gem 'bson_ext' | |
gem 'temple', '0.4.1' | |
gem 'slim', '1.3.0' | |
gem 'rspec' | |
gem 'rack-test' | |
gem 'simplecov' | |
gem 'database_cleaner' | |
gem 'json_spec' | |
gem 'thin' | |
gem 'json' | |
The user_spec_api.rb | |
describe 'UserAPI' do | |
include Rack::Test::Methods | |
describe '/post user' do | |
context 'with no parameters' do | |
context 'with no json' do | |
before { post '/user' } | |
it { expect(last_response.status).to be 500 } | |
it { expect(last_response.errors).to include('ArgumentError') } | |
it { expect(last_response.errors).to include('We need an email to process your request.') } | |
end | |
end | |
context 'with a valid email' do | |
before { post '/[email protected]' } | |
it { expect(last_response.status).to be 200 } | |
it { expect(User.count).to be 1} | |
it { expect(User.last.email).to eq '[email protected]'} | |
end | |
end | |
end | |
The user_api.rb | |
module Sinatra | |
module EasyBar | |
module UserAPI | |
def self.registered(app) | |
app.post '/user' do | |
raise(ArgumentError, 'We need an email to process your request.') if params['email'].blank? | |
User.create! email: params['email'] | |
end | |
end | |
end | |
end | |
end |
The failure with rspec -b
- UserAPI /post user with no parameters with no json
Failure/Error: before { post '/user' }
NoMethodError:
undefined method `join' for #String:0x007f71290e02a8/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/sinatra-1.4.5/lib/sinatra/show_exceptions.rb:37:in`rescue in call'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/sinatra-1.4.5/lib/sinatra/show_exceptions.rb:21:in `call'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:180:in`call'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:2014:in `call'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in`block in call'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1788:in `synchronize'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in`call'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rack-test-0.6.2/lib/rack/mock_session.rb:30:in `request'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rack-test-0.6.2/lib/rack/test.rb:230:in`process_request'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rack-test-0.6.2/lib/rack/test.rb:66:in `post'
./spec/routes/user_api_spec.rb:7:in`block (5 levels) in <top (required)>'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example.rb:322:in `instance_exec'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example.rb:322:in`instance_exec'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/hooks.rb:350:in `run'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/hooks.rb:427:in`block in run'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/hooks.rb:427:in `each'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/hooks.rb:427:in`run'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/hooks.rb:500:in `run'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example.rb:368:in`run_before_example'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example.rb:151:in `block in run'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example.rb:329:in`with_around_example_hooks'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example.rb:149:in `run'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:490:in`block in run_examples'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:486:in `map'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:486:in`run_examples'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:453:in `run'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:454:in`block in run'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:454:in `map'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:454:in`run'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:454:in `block in run'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:454:in`map'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:454:in `run'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:454:in`block in run'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:454:in `map'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:454:in`run'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:111:in `block (2 levels) in run_specs'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:111:in`map'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:111:in `block in run_specs'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/reporter.rb:53:in`report'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:107:in `run_specs'
/home/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:85:in`run'
/home/celsoMartins/.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/celsoMartins/.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/celsoMartins/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/exe/rspec:4:in `<top (required)>'
/home/celsoMartins/.rbenv/versions/2.1.3/bin/rspec:23:in`load'
/home/celsoMartins/.rbenv/versions/2.1.3/bin/rspec:23:in `'
The answer
A more structured discussion
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
bundle output that started the problem.
(master)$ bundle
Fetching gem metadata from http://rubygems.org/.........
Using i18n 0.6.11
Using multi_json 1.10.1
Using activesupport 3.2.21
Using builder 3.0.4
Using activemodel 3.2.21
Using bson 1.11.1
Using bson_ext 1.11.1
Using daemons 1.1.9
Using database_cleaner 1.3.0
Using diff-lcs 1.2.5
Using docile 1.1.5
Using eventmachine 1.0.3
Using json 1.8.1
Using rspec-support 3.1.2
Using rspec-core 3.1.7
Using rspec-expectations 3.1.2
Using rspec-mocks 3.1.3
Using rspec 3.1.0
Using json_spec 1.1.4
Using moped 1.5.2
Using origin 1.1.0
Using tzinfo 0.3.42
Using mongoid 3.1.6
Installing rack 1.6.0
Using rack-protection 1.5.3
Using rack-test 0.6.2
Using simplecov-html 0.8.0
Using simplecov 0.9.1
Using tilt 1.4.1
Using sinatra 1.4.5
Using temple 0.7.3
Using slim 3.0.0
Using thin 1.6.3
Using bundler 1.7.9
Your bundle is complete!
Use
bundle show [gemname]
to see where a bundled gem is installed.