Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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_Ruby_Rspec_Devise_Signing - Fatal编程技术网

Ruby on rails 设计登录在rspec测试中不起作用

Ruby on rails 设计登录在rspec测试中不起作用,ruby-on-rails,ruby,rspec,devise,signing,Ruby On Rails,Ruby,Rspec,Devise,Signing,正如标题中所解释的 以下是我的rails助手: 0 ENV['RAILS_ENV'] ||= 'test' 9 8 require File.expand_path('../../config/environment', __FILE__) 7 require 'spec_helper' 6 require 'rspec/rails' 5 require 'capybara/rspec' 4 require 'capybara-scre

正如标题中所解释的

以下是我的rails助手:

  0 ENV['RAILS_ENV'] ||= 'test'
  9 
  8 require File.expand_path('../../config/environment', __FILE__)
  7 require 'spec_helper'      
  6 require 'rspec/rails'      
  5 require 'capybara/rspec'   
  4 require 'capybara-screenshot/rspec'
  3 require 'capybara-screenshot/minitest'
  2 require 'devise'           
  1 include Capybara::DSL      
11  \
  1 abort("The Rails environment is running in production mode!") if Rails.env.production?
  2 
  3 ActiveRecord::Migration.maintain_test_schema!
  4 
  5 RSpec.configure do |config|
  6   config.fixture_path = "#{::Rails.root}/spec/fixtures" 
  7   config.include Devise::TestHelpers, :type => :controller
  8   config.extend ControllerMacros, :type => :controller
  9   config.include Capybara::DSL
 10   config.use_transactional_fixtures = true
 11   config.infer_spec_type_from_file_location!
 12 end
这是我的实际测试:

    1   require 'rails_helper'
  1
  2 describe DashboardController, type: :controller do
  3
  4   it 'should display chart', js: true do
  5     @request.env["devise.mapping"] = Devise.mappings[:user]
  6     member = Fabricate(:member)
  7     member.confirm
  8     domain = Fabricate(:domain, member: member)
  9     Fabricate(:url, domain: domain, url: '/ayoo_lmao', time_spent: 122)
 10     Fabricate(:url, domain: domain, url: '/ayoo_lmao', time_spent: 125)
 11
 12     sign_in :member, member
 13
 14     visit root_path()
 15
 16     binding.pry
 17   end
 18 end
所以当我运行这个测试时,Firefox会打开并显示我的登录页面,但我确实在alredy中登录了。当我手动尝试在槽绑定中签名时,撬动并访问根路径,我得到:

[2] pry(#<RSpec::ExampleGroups::DashboardController>)> visit root_path
Errno::ECONNREFUSED: Connection refused - connect(2) for "127.0.0.1" port 7055
from /home/karlis/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:879:in `initialize'
如何在rspec控制器测试中使用登录


谢谢。

通过安装databasecleaner解决了此问题

最后一个错误无效,因为我关闭了firefox驱动程序,当我访问根路径时,它会返回。你的spec/mummercor/user\u mummercor.rb文件是什么样子的?我用member\u mummercor.rb文件内容更新了这个问题。问题是我无法登录,因为designe认为用户不存在,并且它不是从视图的角度,而是在binding.pry member中。所有返回的值都很好。由解决安装数据库清理器!我也面临同样的问题,你能解释一下你的解决方案吗。安装gem'database_cleaner'对meAlso不起作用,你是否使用与我相同的制造商?还是一个工厂女孩?我已经使用databasecleaner很久了。但是这个问题最近发生了。这与firefox更新有关吗?此外,我正在使用FactoryGirlhone,我完全不知道。我所做的一切,我安装了数据库清理器,也许尝试重新安装数据库清理器?
  2 Fabricator(:member) do
  1   email 'admin@admin.com'
3     password 'rootroot'
  1   first_name 'Rinholds'
  2   last_name 'Jordan'
  3   expiration Time.local(2015, 6, 21, 15, 13, 0)
  4   start_date Time.local(2015, 4, 21, 15, 13, 0)
  5   role 2
  6 end