2016-04-23 52 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 

然而,當我運行特性測試,我發現了以下錯誤。

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.rbrails_helper.rb)模塊:

require "todo_helper" 

RSpec.configure

config.include Features 
+0

謝謝。我在rails_helper.rb中添加了前一個模塊,但沒有意識到我已經完成了這一步。現在它會粘在我的大腦裏。 –