Rails使用assert_select验证类的存在

时间:2015-01-28 18:53:19

标签: ruby-on-rails

我的rails应用程序中有以下标记:

<body class="hello">

我尝试使用 assert_select 来验证body标签是否为 hello

assert_select "body.hello"

但我的测试仍然失败,输出如下:

Expected at least 1 element matching "body.hello", found 0..
Expected 0 to be >= 1.

我尝试过以下方法:

assert_select "body[class=hello]"

但我得到同样的信息。

我知道 assert_select 有效,因为以下传递正常assert_select "body"

FWIW,这是在控制器测试中发生的。许多rails文档似乎表明你可以按照我试图的方式使用assert_select。我不明白这一点。这种方法最近有变化吗?

1 个答案:

答案 0 :(得分:4)

您的代码没有任何问题,我在控制器测试中多次使用assert_select "body.class_name"。我猜想<body>标签不是你认为在这个测试中的标签,看看它只是添加一个puts来获取完整的HTML输出块,即:

puts assert_select 'body'

这将显示测试中正文标记的内容,也许您会看到问题。