作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的站点有几十个“link_to”实例。我决定将其中大部分更改为“button_to”以获得更好的外观。用于检查这些链接是否存在的我的测试行不再有效。
assert_select "a", :href => user_path(@seminar.teacher), text: "Your Teacher Profile", count: 2
测试不能正常工作
assert_select "button", etc...
有没有办法调整测试以找到 button_to 实例?从我最初的搜索来看,似乎没有。
我也在考虑简单地从测试中删除这些行,因为我在另一篇文章中读到,简单地测试显示项目的存在并不是使用 Rails 测试的非常有用的方法。
提前感谢您的任何见解!
最佳答案
这是使用 Rails 的默认测试框架 MiniTest 测试 button_to 是否存在的一种方法。在此示例中,成员(member)的显示页面上有一个按钮,可将其成员(member)状态更改为非事件状态:
<%= button_to 'Change status to Inactive', membership_path(@membership), method: :patch,
params: { 'membership[status]' => 'Inactive'} %>
如果您在网络浏览器中检查您的 View 以查看 HTML(在 Chrome 中,右键单击按钮元素然后选择检查)您会看到 button_to 实际上是一个表单。因此,您可以测试是否存在具有等于特定 membership_path 的 action 属性的表单元素。
membership = Membership.first
assert_select 'form[action=?]', membership_path(membership.id)
如果你还想测试按钮的文本是否存在,那么做一个 block
membership = Membership.first
assert_select 'form[action=?]', membership_path(membership.id) do
assert_select 'input[value=?]', 'Change status to Inactive'
end
关于ruby-on-rails - rails : Can I test for the presence of a button_to?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39182755/
我是一名优秀的程序员,十分优秀!