我正在学习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方法,它在每个功能中传递但不作为帮助程序传递。任何帮助表示赞赏。
答案 0 :(得分:1)
确保在RSpec配置(spec_helper.rb
或rails_helper.rb
)中要求并包含包含助手方法的模块:
require "todo_helper"
RSpec.configure
内:
config.include Features