水豚 & RSpec

2024-02-05

我无法让水豚成功工作,它抱怨说has_text是一个未定义的方法。

我创建了一个新的 Rails 3.1 项目(rails new test -T).

Gemfile:

source 'http://rubygems.org'

gem 'rails', '3.1.3'

gem 'sqlite3'

group :assets do
  gem 'sass-rails',   '~> 3.1.5'
  gem 'coffee-rails', '~> 3.1.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

group :test do
  gem 'rspec-rails'
  gem 'capybara'
end

我已经安装了spec文件夹:rails g rspec:install.

规格/spec_helper.rb:

ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
require 'capybara/rspec'

Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}

RSpec.configure do |config|
  config.mock_with :rspec
  config.fixture_path = "#{::Rails.root}/spec/fixtures"
  config.use_transactional_fixtures = true
  config.infer_base_class_for_anonymous_controllers = false
end

最后是我的测试文件:

require 'spec_helper'

feature "the test" do
  scenario "GET /" do
    visit('/')
    page.should have_text('Welcome aboard')
  end
end

所以我启动 rspec:bundle exec rspec spec/my_test.rb这是错误:

F

Failures:

  1) the test GET /
     Failure/Error: page.should have_text('Welcome aboard')
     NoMethodError:
       undefined method `has_text?' for #<Capybara::Session>
     # ./spec/my_test.rb:6:in `block (2 levels) in <top (required)>'

您很可能正在使用水豚1.1.2这是当前的稳定版本,但它没有has_text?方法。您可以使用has_content? http://rubydoc.info/gems/capybara/1.1.2/Capybara/Node/Matchers#has_content%3F-instance_method(以及相应的have_contentmatcher),或者按照 Skydreamer 的建议直接从 github 存储库使用水豚。

注意has_content?有一些不同的行为,如中所述README。另一方面,直接从存储库使用 gem 并不总是安全的,因为这个版本可能不是很稳定。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

水豚 & RSpec 的相关文章

随机推荐

  • 使用 Dapper 的 Asp.Net Identity 2.0 自定义存储提供程序

    我知道这个描述有点长 但很容易理解 我创建了一个自定义存储提供程序 它使用 Dapper 作为实体框架的替代品 为此 我创建了一个名为 AspNet Identity Dapper 的类库 Web 应用程序只需添加对此类库的引用即可替换 E
  • 在 Sql Server 中使用子查询更新查询

    我有一个像这样的简单表结构 Table tempData NAME MARKS Narendra 80 Ravi 85 Sanjay 90 我还有另一个表名临时数据视图像这样 NAME MARKS Narendra Narendra Nar
  • 索引的 DO 和 DONT [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 使用索引提高数据库性能的注意事项有哪
  • Android:半圆进度条

    我想要图像背景中的半圆形进度条 就像下图一样 我尝试使用画布进行绘制 但未能成功 我也厌倦了一些自定义进度条库 但结果是相同的 有什么建议 寻找一次性开发并用于每种屏幕尺寸 这可以通过以一定角度剪切包含图像的画布 通过绘制弧线 来实现 你可
  • 成功拉取请求后更改分支并删除 Git 中的分支

    我创建了一个分支 newbranch 从主人那里出来 然后又推回原点 然后我创建了一个拉取请求 该请求被接受并合并到 master 中 此时我应该删除 newbranch 从我的本地并重新从主人那里拉来开始做新的事情 在分支被接受为 mas
  • R - 根据匹配的名称逐个元素组合任意列表

    我有两个清单 m list a list b list 1 2 c 3 b1 4 e 5 n list a list b list 10 20 c 30 b1 40 f 50 其中 m 的结构为 List of 1 a List of 4
  • 函数 eregi() 已弃用 [重复]

    这个问题在这里已经有答案了 函数 eregi 已弃用 我怎样才能替换 eregi 我尝试使用 preg match 但随后停止工作 我使用道德帮助 http takien com 513 how to fix function eregi
  • 通过命令行运行 JAR 时出现错误 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

    我有一个正在使用的java程序mysql数据库连接代码 我已经添加了mysql connector java 3 0 10 stable bin jar and mysql connector java 5 0 4 bin jar我的 ec
  • 使用servlet,如何从数据库下载多个文件并将它们压缩以供客户端下载

    我有一个 jsp servlet Web 应用程序 客户端可以通过下拉框选择 课程 和 作业 然后单击按钮下载数据库中该课程 作业组合下列出的所有文件 servlet 代码不太工作 因为 zip 文件没有作为附件发送到浏览器 我确实有一次下
  • 如何在 Interface Builder 中输入 RGB 值?

    如何在 Interface Builder 中输入背景的 RGB 或 Hex 颜色值 我可以选择预定义的颜色 但我想手动输入 RGB 值 我可以在哪里执行此操作 单击颜色滑块图标 然后从下拉列表中选择 RGB 滑块 您还可以使用放大镜作为颜
  • 有没有办法使用 Jquery 检测跨浏览器按下后退按钮

    我有一个正在幻灯片放映的网站 当用户按下后退按钮时 我希望它返回到相册视图而不是先前的页面并阻止页面 有办法做到这一点吗 感谢您的任何帮助或建议 jQuery Address 为浏览器历史记录和 Ajax 抓取提供了强大的跨浏览器支持 ht
  • Apache Rewritemap 未被读取?

    我有一个简单的键值映射文件 它将旧用户 ID 转换为新用户 ID 目标是从旧网站拉出会员个人资料页面 并重定向到新网站 其中会员拥有新的用户 ID 我的虚拟主机配置文件是这样的
  • 更改 TabControl 未使用空间的颜色

    我想更改 TabPage 标题右侧未使用空间的颜色 我试图覆盖OnPaintBackground窗口的方法并且它正在工作 这是我使用的代码 protected override void OnPaintBackground PaintEve
  • 无法找到速度模板资源

    只是一个基于 Maven 结构的简单速度独立应用程序 这是用 Scala 编写的用于渲染模板的代码片段helloworld vm in basedir src main resources文件夹 com ggd543 velocitydem
  • Python 中的货币格式

    我希望使用 Python 将 188518982 18 等数字格式化为 188 518 982 18 我怎样才能做到这一点 See the locale https docs python org 3 library locale html
  • Excel ActiveX 列表框随着每次更新而缩小

    我有一组链接的子程序 其工作原理如下 用户在 ActiveX 文本框中键入内容 该文本框中的更改事件调用模块中的子组件 该模块子驱动器更新工作表中的命名范围 范围值驱动更新使用基于范围值的查找函数的 Excel 单元格表 表值被复制并粘贴到
  • 如何从 flutter 应用程序打开 Instagram?

    当我点击按钮时 我想切换到 Instagram 个人资料 我使用这个库网址启动器 https pub dev packages url launcher 但我只能使用网络浏览器来实现此目的 为了实现我的目标 我要做什么 要打开本机和 Web
  • 计算输入字符 - 使用 onkeyup 还是 onkeydown?

    我需要为用户设置最大字符输入 类似于 stackoverflow com 的工作方式 我计划使用 javascript 向用户提供反馈并计算字符数 仅允许提交不超过最大字符数的内容 我不打算使用 xhtml 输入属性来限制此数量 因为只要不
  • C# 中带有圆角边框的表单? [复制]

    这个问题在这里已经有答案了 我使用此代码使表单没有边框样式 this FormBorderStyle FormBorderStyle None 我需要在表格上制作圆角边缘 有简单的方法吗 我该怎么做 看看这个 http msdn micro
  • 水豚 & RSpec

    我无法让水豚成功工作 它抱怨说has text是一个未定义的方法 我创建了一个新的 Rails 3 1 项目 rails new test T Gemfile source http rubygems org gem rails 3 1 3