2016-05-02 3 views
0

Так что я довольно новичок в rspec, я использовал Cucumber в прошлом с Capybara, но я пытался больше двигаться к ACTUAL rspec с Capybara, в отличие от Cucumber (у меня нет необходимо для языка в BDD огурцов огурец)Ошибка загрузки Rspec с Capybara (Неопределенный метод)

Моя структура папок прямо сейчас спецификации/test_helper и спецификации/особенности/google_test.rb (только образец для прямо сейчас)

My gemfile has included: 
    gem 'capybara' 
    gem 'poltergeist' 
    gem 'selenium-webdriver' 
    gem 'rpsec' 

мой test_helper.rb файл (В папке проекта/спецификации)

#test_helper.rb 

#Load up Capybara 
require 'rspec' 
require 'capybara/rspec' 

require 'capybara' 
require 'capybara/dsl' 

#Load up Poltergeist 
require 'capybara/poltergeist' 

#Set JS Supported Driver 
Capybara.javascript_driver = :poltergeist 

мой google_test.rb (В спецификации/особенности)

require 'test_helper' 

Capybara.current_driver = :selenium 
Capybara.run_server = false 
Capybara.app_host = 'www.google.com' 

describe "Visit Google Home Page", :type => feature do 
    it 'Google' do 
    visit ('/') 
    end 
end 

rspec spec/features/google_test.rb Запуск я получаю:

Failures:

1) Visit Google Home Page Google Failure/Error: visit ('/') NoMethodError: undefined method visit' for #<RSpec::ExampleGroups::VisitGoogleHomePage:0x007f8ef546ad30> # ./spec/features/google_test.rb:9:in block (2 levels) in '

Finished in 0.00044 seconds (files took 0.47304 seconds to load) 1 example, 1 failure

Failed examples:

rspec ./spec/features/google_test.rb:8 # Visit Google Home Page Google

Любые идеи?

ответ

1

Когда вам требуется capybara/rspec, он настраивает RSpec, чтобы включить DSL capybara в тесты типа: feature. Есть несколько способов, чтобы установить тип на тесте RSpec

describe "xyz", :type => :feature do # note :feature is a symbol 
    # test goes here 
end 

feature "xyz" do # alias that automatically sets the type 
    # tests go here 
end 

или путем настройки RSpec для установки типа на основе имени каталога - https://www.relishapp.com/rspec/rspec-rails/docs/directory-structure

RSpec.configure do |config| 
    config.infer_spec_type_from_file_location! 
end 

Убедитесь, что вы использовали один из эти методы и visit должны быть доступны

+0

У меня есть функция: type => в моем тесте выше? или он неверен – msmith1114

+0

@ msmith1114 Обратите внимание на мой комментарий - он должен быть: type =>: feature - в противном случае его значение будет установлено: введите результат вызова метода 'feature' –

+0

Ну, я получил что-то по-другому: Неудачи: 1) Посетите Google Главная страница Google Failure/Ошибка: визит ('/') URI :: BadURIError: как URI являются относительными # ./spec/features/google_test.rb:9:in 'блок (2 уровня) в <сверху (обязательный)>» Законченный в 0.0823 секунд (файлы взяли 0.45145 секунд для загрузки) 1, например 1 недостаточность Неудачные примеры: rspec ./spec/features/google_test.rb:8 # Посетите домашнюю страницу Google – msmith1114