ruby on rails - Testing controller with rspec 3 gives "@routes is nil" -
after upgrade rails app utilize rspec 3, controllers tests broke. missing in rails_helper.rb
?
rails_helper.rb
env["rails_env"] ||= 'test' require 'spec_helper' require file.expand_path("../../config/environment", __file__) require 'rspec/rails' dir[rails.root.join("spec/support/**/*.rb")].each { |file| require file } dir[rails.root.join("spec/factories/*.rb")].each { |file| require file } activerecord::migration.check_pending! if defined?(activerecord::migration) rspec.configure |config| config.fixture_path = "#{::rails.root}/spec/fixtures" config.use_transactional_fixtures = true config.infer_base_class_for_anonymous_controllers = false config.order = "random" config.include applicationhelper config.include factorygirl::syntax::methods config.include actioncontroller::testcase::behavior config.include devise::testhelpers, type: :controller config.extend controllermacros, type: :controller config.include(mailermacros) config.before(:each) { reset_email } end
users_controller_spec.eb
require 'rails_helper' describe userscontroller describe 'has_user' let(:student) { factorygirl.create(:student) } 'not succeeds password' :has_user, { password: 123 } expect(response).to have_http_status(:unprocessable_entity) end end end
failures:
1) userscontroller has_user not succeeds password failure/error: :has_user, { password: 123 } runtimeerror: @routes nil: create sure set in test's setup method. # ./spec/controllers/users_controller_spec.rb:10:in `block (3 levels) in <top (required)>'
thanks!
well, missing line within rails_helper.rb
documented here
config.infer_spec_type_from_file_location!
ruby-on-rails rspec rspec3
No comments:
Post a Comment