Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.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:未定义的方法'has#http#u status?';_Ruby On Rails_Ruby_Rspec - Fatal编程技术网

Ruby on rails rspec:未定义的方法'has#http#u status?';

Ruby on rails rspec:未定义的方法'has#http#u status?';,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,在我的一次测试中,我写了 expect(response).to have_http_status(422) 但在运行测试时,我得到了 Failure/Error: expect(response).to have_http_status(422) NoMethodError: undefined method `has_http_status?' for #<ActionController::TestResponse:0x...8> rails_helper.rb

在我的一次测试中,我写了

expect(response).to have_http_status(422)
但在运行测试时,我得到了

Failure/Error: expect(response).to have_http_status(422)
  NoMethodError:
   undefined method `has_http_status?' for #<ActionController::TestResponse:0x...8>
rails_helper.rb


奇怪的错误,但您始终可以求助于
expect(response.status)。对于eq(200)
,由于您缺少RSpec匹配器,您的设置中有些奇怪。具体来说,您可以尝试创建一个新的应用程序吗?我们需要规范的相关部分和所需的规范帮助器或rails\u helper.rbHmm,您的rails\u helper.rb看起来非常奇怪。您应该需要
spec\u helper.rb
并执行
require'rspec/rails'
以需要核心rspec组件。如果您使用的是版本控制,则会删除spec_helper.rb和rails_helper.rb,并使用
rails g rspec:install
重新运行生成器,因为您的设置看起来完全失败了。然后再次添加spree、warden等的配置。奇怪的错误,但您始终可以求助于
expect(response.status)。到eq(200)
由于缺少RSpec匹配器,您的设置中有些奇怪。具体来说,您可以尝试创建一个新的应用程序吗?我们需要规范的相关部分和所需的规范帮助器或rails\u helper.rbHmm,您的rails\u helper.rb看起来非常奇怪。您应该需要
spec\u helper.rb
并执行
require'rspec/rails'
以需要核心rspec组件。如果您使用的是版本控制,则会删除spec_helper.rb和rails_helper.rb,并使用
rails g rspec:install
重新运行生成器,因为您的设置看起来完全失败了。然后再次添加spree、warden等的配置。
rspec-core (3.5.4)
  rspec-support (~> 3.5.0)
rspec-expectations (3.5.0)
  diff-lcs (>= 1.2.0, < 2.0)
  rspec-support (~> 3.5.0)
rspec-mocks (3.5.0)
  diff-lcs (>= 1.2.0, < 2.0)
  rspec-support (~> 3.5.0)
rspec-rails (3.5.2)
  actionpack (>= 3.0)
  activesupport (>= 3.0)
  railties (>= 3.0)
  rspec-core (~> 3.5.0)
  rspec-expectations (~> 3.5.0)
  rspec-mocks (~> 3.5.0)
  rspec-support (~> 3.5.0)
rspec-support (3.5.0)
    it "returns error response" do
      post :create, :use_route => 'spree', some_id: nil
      expect(response).to have_http_status(422)
    end
require 'controller_spec_helper'
require 'capybara/rspec'
require 'capybara/poltergeist'


# Requires factories defined in spree_core
require 'spree/testing_support/capybara_ext'

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, {window_size: [1400,700]})
end

Capybara.javascript_driver = :poltergeist
Capybara.default_wait_time = 5

require 'my_helpers'
require 'spec_helpers/base_helper'
require 'spec_helpers/collections_helpers'
require 'spec_helpers/sunspot_helpers'

RSpec.configure do |config|
  config.include Rails.application.routes.url_helpers
  config.include Spree::TestingSupport::UrlHelpers
  config.include Warden::Test::Helpers
  Warden.test_mode!


  #preventing url's from being loaded in tests
  #https://robots.thoughtbot.com/speed-up-javascript-capybara-specs-by-blacklisting-urls
  config.before(:each, js: true) do
    page.driver.browser.url_blacklist = %w(...)

  end

  config.fail_fast = ENV['FAIL_FAST'] || false
  config.include Spree::TestingSupport::ControllerRequests
  config.include BaseHelper
end