Minitest assert_select的水豚等价物是多少?



我对测试很陌生,所以如果我在测试方法中出错,请随时纠正。

我正在用Minitest测试Rails4应用程序。由于我在许多页面中都包含JS,我使用Capybara在测试中使用JS驱动程序,还可以触发JS事件并测试预期结果。在这里,我的困惑开始了,因为有很多方法可以包括水豚。

此外,我发现"正常"断言风格的语法不适用于Capybara。在这里,我的困惑达到了顶峰。在我的研究过程中,我发现有一种适用于Capybara的Spec风格DSL,还有更多。现在我使用gem"minitestrails-capybara"(Github),并尝试使用以下列表中的方法/DSL:RubyDoc

我试图替换一个测试HTML元素的简单断言。

之前:assert_select "title", "Study | Word Up"

现在:page.has_selector?('title', :text => "Study | Word Up")

但不管我考什么,考试总是通过的。这怎么可能?我检查了服务器日志,看看我是否在正确的页面上。但一切似乎都很好,通过测试是没有意义的。

您需要使用Capybara的assert_selector:

assert_selector "title", text: "Study | Word Up"

如果您试图从head元素而不是主体断言文档的标题,那么您需要使用assert_title:

assert_title "Study | Word Up"

您需要使用assert:

assert page.has_selector?('title', :text => "Study | Word Up")

has_selector?返回一个布尔值,您需要检查这个布尔值的值。

最新更新