Fli*_*lip 5 javascript ruby ruby-on-rails minitest capybara
我对测试很陌生,所以如果我的方法有问题,请随时纠正我。
我正在使用 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")
但无论我测试什么,测试总是通过。这怎么可能?我检查了服务器日志,看看我是否在正确的页面上。但一切似乎都很好,通过测试没有意义。
你需要使用水豚的assert_selector:
assert_selector "title", text: "Study | Word Up"
Run Code Online (Sandbox Code Playgroud)
如果您试图从 head 元素而不是 body 断言文档的标题,那么您需要使用assert_title:
assert_title "Study | Word Up"
Run Code Online (Sandbox Code Playgroud)