2016-04-23 46 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中添加了前一个模块,但没有意识到我已经完成了这一步。现在它会粘在我的大脑里。 –