Rspec 功能无法访问辅助方法

Rspec Helper Method Not Accessible to Features

我正在学习 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 方法,它在每个功能中传递,但不是作为助手。感谢任何帮助。

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

require "todo_helper"

RSpec.configure内:

config.include Features