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