我有一个Rails测试,在该测试中,我转到一个页面并输入信息,保存该页面(返回一个页面),然后try 返回查看数据是否仍在那里.我碰壁了,但我怀疑,如果我能看到页面上的内容,我就能辨别出什么时候错了,或者如何调整我的断言.有什么方法可以可视化/断点/curl 测试实际遇到的页面吗?我所断言的一切都是假的.

it "Emergency Contact step saves data submitted" do
  click_link "Register online"
  click_link "Emergency Contacts"
  fill_in "Contact 1 Name", :with => "1 name"
  fill_in "Contact 1 Phone", :with => "123.456.7890"
  click_button "Save"
  click_link "Emergency Contacts"
  assert page.has_content?("1 name")
  assert page.has_content?("123.456.7890") 
end

推荐答案

在页面转换后,我使用的一种技术是对照已知路径判断当前路径(路由),如下所示:

assert_equal page.current_path, new_page_path
# or
assert_equal page.current_path, "/things/new"

调试的另一种方法可能是查看page.html

puts page.html

或者使用水豚的save_and_open_page方法,该方法将当前页面的HTML保存到Rails应用程序的tmp目录,并在浏览器中打开该目录.

Ruby-on-rails相关问答推荐

Puma 工作人员无法在 Ubuntu 20.04 VM 上的 Rails 5.2 中启动

根据表单内的 Select 字段值渲染部分内容

为什么有时会出现类型错误没有将 StringIO 隐式转换为 String?Ruby /导轨

如何在 Ruby on Rails 中正确存储 BigDecimal

URL 中的 Rails slugs - 使用 Active Record Model Post 的 Title 属性而不是 ID

Rails 连接并包含连接表中的列

Rails 和 jsonb 类型jsonb不存在

Rails 100% 新手问题 - send() 方法

attr_accessible(*attributes) 和 attr_protected(*attributes) 有什么区别?

rails 3.2 迁移无法在更改方法中向 create_table 添加索引

如何让 Rspec 运行嵌套在文件夹下的所有测试?

在 Ruby on Rails 中获取空临时目录的最佳方法是什么?

在 Rails 中,如何处理多个选中的复选框,只需拆分 , 或?

如何将 yaml 文件解析为 ruby​​ 哈希和/或数组?

使用 SQLite 3 将 RoR 应用程序部署到 Heroku 失败

升级到设计 3.1 => 获取重置密码令牌无效

在具有唯一约束的关联中使用 Rails 中的 factory_girl.得到重复的错误

使用 AJAX 向 Rails 发送 Authenticity Token 的正确方法

rails structure.sql和schema.rb有什么区别

Rails:您已经激活了 rake 10.3.1,但您的 Gemfile 需要 rake 10.2.2 (Gem::LoadError)