Rspec 显然讨厌我。我有点讨厌他回来。
#features/step_definitions/custom_steps.rb
Then /^I should see the link "([^\"]*)"$/ do |linked_text|
find_link(linked_text)
end
#link.feature
Then I should see the link "foo"
从终端:
undefined method `find_link' for #<Cucumber::Rails::World:0x818e02e8> (NoMethodError)
./features/step_definitions/custom_steps.rb:115:in `/^I should see the link "([^\"]*)"$/'
我的 env.rb 文件:
#features/support/env.rb # 重要提示:此文件由 cucumber-rails 生成 - 编辑后果自负。 # 建议以后升级到a时重新生成这个文件 # 新版本的黄瓜导轨。考虑将您自己的代码添加到新文件中 # 而不是编辑这个。Cucumber 会自动加载所有功能/**/*.rb # 个文件。 ENV["RAILS_ENV"] ||= "黄瓜" 需要 File.expand_path(File.dirname(__FILE__) + '/../../config/environment') require 'cucumber/formatter/unicode' # 如果您不想要 Cucumber Unicode 支持,请删除此行 需要'黄瓜/导轨/世界' 需要'黄瓜/rails/active_record' 需要“黄瓜/网络/餐桌” 需要'webrat' 需要'webrat/core/matchers' 需要“规格/存根/黄瓜” 场景::加载 Webrat.configure 做 |config| config.mode = :rails config.open_error_files = false # 如果您希望在浏览器中弹出错误页面,请设置为 true 结尾 # 如果你将它设置为 false,任何从你的应用程序中引发的错误都会冒泡 # 直到你的步骤定义和黄瓜,除非你在某个地方抓住它 # 在途中。您可以让 Rails 救援错误并在 # 通过使用@allow-rescue 标签标记场景或功能,基于每个场景。 # # 如果设置为 true,Rails 将挽救所有错误并渲染错误 # 个页面,或多或少与您的应用程序在 # 默认生产环境。不建议所有人都这样做 # 你的场景,因为这使得你很难在你的应用程序中发现错误。 ActionController::Base.allow_rescue = false # 如果将此设置为 true,则每个场景都将在数据库事务中运行。 # 你仍然可以在每个场景的基础上关闭事务,只需标记 # 带有@no-txn 标签的功能或场景。如果您使用水豚, # 使用@culerity 或@javascript 进行标记也会关闭事务。 # # 如果设置为 false,则所有场景的事务都将关闭, # 不管你是否使用@no-txn。 # # 注意关闭事务会将数据留在数据库中 # 在每个场景之后,这可能导致难以调试的失败 # 后续场景。如果您这样做,我们建议您创建一个之前 # 块将显式地将您的数据库置于已知状态。 Cucumber::Rails::World.use_transactional_fixtures = true # 如何在事务关闭时清理数据库。看 # http://github.com/bmabey/database_cleaner 了解更多信息。 如果定义了?(ActiveRecord::Base) 开始 需要'database_cleaner' DatabaseCleaner.strategy = :truncation 救援 LoadError => ignore_if_database_cleaner_not_present 结尾 结尾