为什么我在RSpec 3.0中得到"未定义的方法或变量'示例'"?

 妃你莫属L_957 发布于 2023-02-12 15:45

升级到RSpec 3.0后,我收到以下消息:

 Failure/Error: Unable to find matching line from backtrace
 NameError:
   undefined local variable or method `example' for #

即使将规范减少到以下内容后,该消息仍然存在:

describe "" do
  it "" do
  end
end

我注意到capybara靠近堆栈的顶部,如下所示:

 # /Users/palfvin/.rvm/gems/ruby-2.0.0-p247@botmetrics/gems/capybara-2.1.0/lib/capybara/rspec.rb:20:in `block (2 levels) in '

如果有帮助.

2 个回答
  • 我有一个before钩子类似的问题.

    似乎RSpec <3 example在每个钩子中都提供了一个对象,如下所示:

    config.before(:each) do
      if example.metadata[:js] # <--- this fails!
        # do something
      end
    end
    

    在RSpec> = 3中,您必须将一个显式示例参数传递给块:

    config.before(:each) do |example| # <--- see here!
      if example.metadata[:js]
        # do something
      end
    end
    

    2023-02-12 15:48 回答
  • 在继续运行Capybara 2.1.0的同时安装RSpec 3.0.0.beta会导致此错误.如果您安装Capybara 2.2.0.beta,错误将消失.

    2023-02-12 15:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有