[RUBY-ON-RAILS] 레일 RSpec에 카피 바라 및 방법을 사용하여 정의 '방문'
RUBY-ON-RAILS레일 RSpec에 카피 바라 및 방법을 사용하여 정의 '방문'
나는 RSpec에와 카피 바라의 작업을 얻을 수 없습니다. 그것은 나에게 오류를 제공합니다 :
undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil>
나는이 있지만, 솔루션이 아닌 나를 위해 노력하고 있습니다에 대한 글을 많이가 알고있다. 광산에서 인 - 그들 중 대부분은 스펙 / 스펙 / 기능에없는 포함한다.
첫 번째 오류 :
$bundle exec rspec spec
F
Failures:
1) security signs users in
Failure/Error: visit "/sessions/new"
NoMethodError:
undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil>
# ./spec/features/security_spec.rb:4:in `(root)'
Finished in 0.006 seconds
1 example, 1 failure
Failed examples:
rspec ./spec/features/security_spec.rb:3 # security signs users in
나는 처음에 나는 URL 도우미 'new_sessions_path'를 사용했는데 그것은 오류가 지역 변수 또는 메서드 'new_sessions_path를'정의되지 않은 저를주는 보관주의에 그것의 중요한 생각합니다. 나는 그것이 유효하기 때문에 알고 :
$ rake routes
logout_sessions GET /sessions/logout(.:format) sessions#logout
sessions POST /sessions(.:format) sessions#create
new_sessions GET /sessions/new(.:format) sessions#new
contracts POST /contracts(.:format) contracts#create
new_contracts GET /contracts/new(.:format) contracts#new
edit_contracts GET /contracts/edit(.:format) contracts#edit
GET /contracts(.:format) contracts#show
PUT /contracts(.:format) contracts#update
DELETE /contracts(.:format) contracts#destroy
root / contracts#index
내 Gemfile :
source 'https://rubygems.org'
gem 'rails', '3.2.11'
gem 'execjs'
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
gem 'activerecord-oracle_enhanced-adapter', '~> 1.4.1'
gem 'jruby-openssl'
gem 'therubyrhino'
gem 'kaminari'
gem 'nokogiri'
group :development do
gem 'warbler'
end
group :test do
gem 'rspec-rails'
gem 'capybara'
gem 'activerecord-jdbcsqlite3-adapter'
end
을 my_app의 spec_helper.rb의 내부 / 사양 :
# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
# Capybara integration
require 'capybara/rspec'
require 'capybara/rails'
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
# config.fixture_path = "#{::Rails.root}/spec/fixtures"
config.use_transactional_fixtures = true
config.infer_base_class_for_anonymous_controllers = false
config.order = "random"
# Include path helpers
config.include Rails.application.routes.url_helpers
end
을 my_app / 스펙 / 기능 / security_spec.rb :
describe "security", :type => :feature do
it "signs users in" do
visit "/sessions/new"
fill_in "username", :with => "user"
fill_in "password", :with => "pass"
click_button "Sign In"
page.should have_content('Login Successful')
end
end
=> 유형 : 기능 내가 함께 및없이 모두 위의 테스트를 정의하는 시도했습니다. 그것은 차이 중 하나의 방법을하지 않습니다. 모든 내가 다음에 시도해야 어떤 아이디어?
해결법
-
==============================
1.추가보십시오 :
추가보십시오 :
config.include Capybara::DSL
당신의 config 블록에.
# This file is copied to spec/ when you run 'rails generate rspec:install' ENV["RAILS_ENV"] ||= 'test' require File.expand_path("../../config/environment", __FILE__) require 'rspec/rails' require 'rspec/autorun' # Requires supporting ruby files with custom matchers and macros, etc, # in spec/support/ and its subdirectories. Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} RSpec.configure do |config| # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures # config.fixture_path = "#{::Rails.root}/spec/fixtures" config.use_transactional_fixtures = true config.infer_base_class_for_anonymous_controllers = false config.order = "random" # Include path helpers config.include Rails.application.routes.url_helpers config.include Capybara::DSL end
-
==============================
2.내 기능의 상단에 'rails_helper'을 필요로 추가하면 내 문제를 해결 결국 :
내 기능의 상단에 'rails_helper'을 필요로 추가하면 내 문제를 해결 결국 :
require 'rails_helper' describe "security", :type => :feature do it "signs users in" do visit new_sessions_path fill_in "username", :with => "user" fill_in "password", :with => "pass" click_button "Sign In" page.should have_content('Login Successful') end end
이것은 내가 잘 오 요구하는,하지만하지 않았다 RSpec에와 카피 바라 본적 모든 예부터 나에게 이상한 것 같다. 문제 해결됨.
'spec_helper'을 필요로하는 RSpec에 이전 버전에서 사용됩니다. 더 나은 대답은 'rails_helper'를 필요로 할 것이다.
-
==============================
3.카피 바라 2.0 이후 하나의 폴더 사양을 사용하는 / 카피 바라 명령은 더 이상 폴더 사양 / 요청에서 일을하지 않습니다 있습니다.
카피 바라 2.0 이후 하나의 폴더 사양을 사용하는 / 카피 바라 명령은 더 이상 폴더 사양 / 요청에서 일을하지 않습니다 있습니다.
-
==============================
4.전 (before) 블록에 모든 설정을 수행합니다 :
전 (before) 블록에 모든 설정을 수행합니다 :
사양 / 기능 / security_spec.rb
describe "security" do before do visit "/sessions/new" fill_in "username", :with => "user" fill_in "password", :with => "pass" click_button "Sign In" end it "signs users in" do page.should have_content('Login Successful') end end
-
==============================
5.나는 또한이 문제를 가지고 있었다
나는 또한이 문제를 가지고 있었다
내 기능의 상단에 'rails_helper'을 필요로 추가하면 내 문제를 해결 결국 :
require 'rails_helper' RSpec.describe "Products", type: :request do describe "GET /products" do it "display tasks" do Product.create!(:name => "samsung") visit products_path page.should have_content("samsung") #expect(response).to have_http_status(200) end end end
그리고 추가 'config.include 카피 바라 :: DSL'에서 rails_helper.rb
RSpec.configure do |config| config.fixture_path = "#{::Rails.root}/spec/fixtures" config.use_transactional_fixtures = true config.infer_spec_type_from_file_location! config.include Capybara::DSL end
from https://stackoverflow.com/questions/15148585/undefined-method-visit-when-using-rspec-and-capybara-in-rails by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 루비 : sqlite3를 :: BusyException : 데이터베이스가 잠겨 있습니다 : (0) | 2020.02.29 |
---|---|
[RUBY-ON-RAILS] 카피 바라와 함께, 어떻게 "_blank"목표와의 연계에 대한 새로운 창으로 전환합니까? (0) | 2020.02.29 |
[RUBY-ON-RAILS] 사용 HTML5 데이터에 가장 좋은 방법은 레일 content_tag 도우미와 속성? (0) | 2020.02.29 |
[RUBY-ON-RAILS] has_many 협회의 개체 수 제한 (0) | 2020.02.29 |
[RUBY-ON-RAILS] 루비 온 레일즈 MVC는 무엇입니까? (0) | 2020.02.29 |