Ruby on rails rspec检查错误控制器的水豚
我正在尝试通过填充一些值来测试我的控制器。我已将控制器规范文件放置在Ruby on rails rspec检查错误控制器的水豚,ruby-on-rails,rspec,capybara,Ruby On Rails,Rspec,Capybara,我正在尝试通过填充一些值来测试我的控制器。我已将控制器规范文件放置在spec/feature下。但是我的访问没有正常工作,它访问了错误的控制器 我的控制器规范文件是 require 'spec_helper' describe ApplicationsController, :type => :controller do render_views #the problem is - we need to test criminal record data block from s
spec/feature
下。但是我的访问没有正常工作,它访问了错误的控制器
我的控制器规范文件是
require 'spec_helper'
describe ApplicationsController, :type => :controller do
render_views
#the problem is - we need to test criminal record data block from saferent response
#this guy edwin avila is test input provided by saferent
describe "GET 'new'" , :type => :request do
before do
visit '/TestApplication'
fill_in 'application[applicants_attributes][0][first_name]', :with => 'Rose'
click_link_or_button 'sbmt'
end
it 'has 200 status code if logged in' do
expect(response.status).to eq(200)
end
end
end
我的Gem文件是
source 'https://rubygems.org'
gem 'rails', '4.0.0'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 4.0.0'
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
gem 'therubyracer', :platforms => :ruby
gem 'uglifier', '>= 1.0.3'
gem 'yui-compressor'
end
gem 'jquery-rails'
gem 'git'
# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'
# To use Jbuilder templates for JSON
# gem 'jbuilder'
gem 'passenger'
# Deploy with Capistrano
gem 'capistrano'
gem 'rvm-capistrano'
# To use debugger
# gem 'debugger'
gem "xpath", "~> 2.0.0"
gem "formtastic"
gem 'simple_form', :git => 'git://github.com/plataformatec/simple_form.git'
gem "rentjuicer"
gem "capybara", :group => [:development, :test]
#gem "capybara", "~> 2.1.0"
gem "daemons"
gem "mongoid", github: "mongoid/mongoid"
#gem "delayed_job_mongoid" #upto rails 3
gem "bson_ext", '~> 1.5'
gem "whenever", :require => false
gem "bitly", "~> 0.8.0"
gem "mogreet"
gem 'wicked_pdf'
gem 'httparty'
gem 'activemodel'
gem 'actionpack','~> 4.0'
gem "carrierwave-mongoid", "~> 0.6.3"
gem 'mongoid-grid_fs', github: 'ahoward/mongoid-grid_fs'
#gem 'client_side_validations'
#gem 'client_side_validations-simple_form'
#gem "client_side_validations-mongoid", "~> 4.1.2"
gem 'twilio-ruby'
gem "rash", "~> 0.4.0"
gem "activeresource", "~> 4.0.0"
gem 'rb-readline', '~> 0.4.2'
gem 'googlecharts'
gem 'htmlentities'
gem 'rspec-rails' , "~> 2.0"
gem 'mongoid-rspec'
gem 'crack'
gem 'simplecov'
#gem 'whoops_rails_logger' upto rails 3
当我试着跑的时候
rspec spec/features/applications_controller_spec.rb
我得到
Failures:
1) GET 'new' has 200 status code if logged in
Failure/Error: visit '/TestApplication'
NoMethodError:
undefined method `collect' for nil:NilClass
# ./app/controllers/home_controller.rb:8:in `index'
# ./spec/features/applications_controller_spec.rb:8:in `block (2 levels) in <top (required)>'
Finished in 0.14064 seconds
1 example, 1 failure
Failed examples:
rspec ./spec/features/applications_controller_spec.rb:12 # GET 'new' has 200 status code if logged in
Randomized with seed 32162
Capybara的访问方法对于该文件路径不起作用(假设您试图访问应用程序的根目录)。试试像这样的东西
visit root_path
我建议您在查看文档,谢谢您的回复。但我已经在路由文件中为TestApplication定义了路由。您将路由定义为TestApplication而不是test_application有什么具体原因吗?没有!没有具体的原因。实际上,我正试图通过改变路线来完成这件事。我也试过你的方法,但也失败了(尝试为应用程序#新建创建控制器操作和视图。看起来您正在尝试访问您的创建操作并输入数据,而此时数据本应已输入并提交。这有意义吗?是的!!!您是对的,我需要确切的东西,但我已经有了一个名为新建和视图的操作。
visit root_path