0

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
  结尾
结尾

怎么了?谢谢你。

4

1 回答 1

0

此错误告诉您没有任何步骤或助手定义此方法。

您是否要使用埋在 Webrat 中的助手之一?听起来你想要:

Webrat::Locators.find_link
于 2010-07-29T16:21:57.180 回答