Ruby on rails 让assert_select显示元素的实际内容

Ruby on rails 让assert_select显示元素的实际内容,ruby-on-rails,minitest,Ruby On Rails,Minitest,我有以下测试: test "users title when logged out" do get users_path assert_select "title", 'Correct title" end 如果我们假设users\u path返回的页面标题错误,那么我会得到以下输出: FAIL["test_users_title_when_logged_out", SiteLayoutTest, 1.0830602300120518] test_users_title_when_l

我有以下测试:

test "users title when logged out" do
  get users_path
  assert_select "title", 'Correct title"
end
如果我们假设users\u path返回的页面标题
错误
,那么我会得到以下输出:

FAIL["test_users_title_when_logged_out", SiteLayoutTest, 1.0830602300120518]
 test_users_title_when_logged_out#SiteLayoutTest (1.08s)
        Expected at least 1 element matching "title", found 0..
        Expected 0 to be >= 1.
        test/integration/site_layout_test.rb:37:in `block in <class:SiteLayoutTest>'
FAIL[“注销时测试用户标题”,SiteLayoutTest,1.0830602300120518]
测试用户注销时的标题站点布局测试(1.08s)
应至少有1个元素与“title”匹配,找到0。。
预期0大于等于1。
测试/集成/站点布局测试。rb:37:in'block in'
我想用类似于
assert_equal“Correct title”,page.title
的内容替换assert_select,这样测试失败消息实际上会向我显示页面的标题,这将使跟踪问题变得更容易!(当然,页面在开发模式下显示正确的标题…)

然而,page.title似乎不可用,我在搜索时只找到了“你可以用水豚来做”之类的东西,这对于这个目的来说有点笨重


是否有一种方法可以编写此测试,使其显示类似于
预期的页面标题是“正确的标题”,但却得到了“错误的标题”
?[为清晰起见进行编辑:“错误的标题”是返回页面中的标题,而不是文字字符串-也就是说,我需要错误来告诉我实际返回的内容。]

答案似乎是
断言相等的“正确标题”,css\u选择(“标题”)。首先。内容

这将提供更有用的失败消息

FAIL["test_users_title_when_logged_out", SiteLayoutTest, 1.0830602300120518]
 test_users_title_when_logged_out#SiteLayoutTest (1.08s)
Expected: "Correct title"
  Actual: "Wrong title"

(尽管我怀疑在我发现问题后,恢复到原来的断言(assert_select)可能是更好的方式!)

您是否尝试过
assert_select“title”、“Correct title”、“预期页面标题为“Correct title”,但得到了“error title”
?如果我输入了“error title”,不确定这有什么帮助“作为文本字符串-我希望它显示
get users\u path
返回的页面中的实际标题…这在您希望始终看到固定失败消息时非常有用。但我现在明白了,你想要达到的目标。您正在寻找类似Rspec的输出,但我不知道minitest。但看起来您需要使用monkey补丁来覆盖默认值。