我的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。我不明白这一点。这种方法最近有变化吗?
答案 0 :(得分:4)
您的代码没有任何问题,我在控制器测试中多次使用assert_select "body.class_name"
。我猜想<body>
标签不是你认为在这个测试中的标签,看看它只是添加一个puts
来获取完整的HTML输出块,即:
puts assert_select 'body'
这将显示测试中正文标记的内容,也许您会看到问题。