2016-04-23 2 views
1

Я изучаю TDD и запускаю некоторые тесты функций, и у меня проблемы со вспомогательным методом.Метод помощника Rspec, не доступный для функций

Я вытащил следующий метод из теста особенности:

todo_helper.rb

module Features 
    def create_todo(todo_title) 
    click_on "Add a new todo" 
    fill_in "Title", with: todo_title 
    click_on "Submit" 
    end 
end 

Однако, я получаю следующее сообщение об ошибке при запуске Feature Test.

Failures: 

    1) User creates todo successfully 
    Failure/Error: create_todo 'Buy Milk' 

    NoMethodError: 
     undefined method `create_todo' for # <RSpec::ExampleGroups::UserCreatesTodo:0x007fb1f351b150> 
# ./spec/features/user_creates_todo_spec.rb:8:in `block (2 levels) in <top (required)>' 

Finished in 0.34992 seconds (files took 2.01 seconds to load) 
1 example, 1 failure 

Failed examples: 

rspec ./spec/features/user_creates_todo_spec.rb:5 # User creates todo successfully 

У меня есть два теста, которые тянут этот метод, и оба они терпят неудачу. Вот выше один:

user_creates_todo_spec.rb

require "rails_helper" 

feature "User creates todo" do 
    scenario "successfully" do 
    sign_in 

    create_todo 'Buy Milk' 

    expect(page).to have_css '.todos li', text: 'Buy Milk' 
    end 
end 

Это странно, потому что я создал еще один помощник, который я использую для sign_in выше способом и что работает нормально, но может Подумайте, почему второй не работает. Я изолировал метод create_todo в исходной функции, и он проходит внутри каждой функции, но не как помощник. Любая помощь приветствуется.

ответ

0

Убедитесь, что вы требуете и включить модуль, содержащий ваш вспомогательный метод в конфигурации RSpec (spec_helper.rb или rails_helper.rb):

require "todo_helper" 

Within RSpec.configure:

config.include Features 
+0

Спасибо. Я добавил предыдущий модуль в rails_helper.rb, но не понял, что сделал это на этом пути. Теперь это будет в моем мозгу. –