Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rspec检查错误控制器的水豚_Ruby On Rails_Rspec_Capybara - Fatal编程技术网

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