我目前正在为我的控制器编写功能测试,我想检查是否有线路
这是一个测试线
出现在我的页面上。
我尝试使用
assert_select "p" do
assert_select "this is the test line"
end
但我认为这条线有问题。
在rails 3版本中执行此操作的最佳方法是什么?
答案 0 :(得分:7)
不指定标签:
assert_match "this is the test line", response.body
答案 1 :(得分:4)
我认为你只是在寻找:
assert_select "p", "this is the test line"
有关assert_select
的详细信息,请参阅the docs。
请注意,上面的行取决于<p>
标记中包含的文本,并且是文字匹配。如果它在另一个标签中,您需要指定正确的选择器。如果你想匹配正则表达式,也支持,通过:
assert_select "p", /test line/
请注意,这不会非常高效,因为它会扫描文档中的所有 <p>
。考虑一个更严格指定的选择器,例如您要定位的元素上的类或ID。
答案 2 :(得分:0)
这适用于导轨6:
assert_selector "p", text: "this is the test line"
doc:https://www.rubydoc.info/github/jnicklas/capybara/Capybara/Node/Matchers
(我得到Unused parameters passed to Capybara::Queries::SelectorQuery
)