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.rb
或 rails_helper.rb
)中需要并包含包含辅助方法的模块:
require "todo_helper"
在RSpec.configure
内:
config.include 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.rb
或 rails_helper.rb
)中需要并包含包含辅助方法的模块:
require "todo_helper"
在RSpec.configure
内:
config.include Features