我对测试很陌生,所以如果我的方法出错了,请随时纠正我。
我正在使用Minitest测试Rails4应用。由于我在许多页面中都包含JS,因此我在测试中使用Capybara来获取JS驱动程序,并且还能够触发JS事件并测试预期结果。在这里我的困惑开始了,因为有许多方法可以包括Capybara。
此外,我发现“普通”断言式语法不适用于Capybara。在这里,我的困惑达到顶峰。在我的研究过程中,我发现Capybara还有一些Spec风格的DSL以及更多。 现在我使用gem'minitest-rails-capybara'(Github),我尝试使用此列表中的方法/ DSL:RubyDoc
我试图替换一个测试HTML元素的简单断言。
之前:assert_select "title", "Study | Word Up"
现在:page.has_selector?('title', :text => "Study | Word Up")
但无论我测试什么,测试总是通过。怎么可能?我检查了服务器日志,看看我是否在正确的页面上。但一切似乎都很好,通过测试没有意义。
答案 0 :(得分:4)
您需要使用Capybara的assert_selector
:
assert_selector "title", text: "Study | Word Up"
如果您试图从head元素而不是body中声明文档的标题,那么您需要使用assert_title
:
assert_title "Study | Word Up"
答案 1 :(得分:2)
您需要使用assert
:
assert page.has_selector?('title', :text => "Study | Word Up")
has_selector?
返回一个布尔值,你需要检查这个布尔值。