Rspec Helper方法无法访问功能

时间:2016-04-23 23:07:35

标签: testing rspec tdd rspec-rails

我正在学习TDD并运行一些功能测试,并且遇到了辅助方法的问题。

我从功能测试中提取了以下方法:

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方法,它在每个功能中传递但不作为帮助程序传递。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

确保在RSpec配置(spec_helper.rbrails_helper.rb)中要求并包含包含助手方法的模块:

require "todo_helper"

RSpec.configure内:

config.include Features