gpt4 book ai didi

ruby-on-rails - 让assert_select 告诉我元素实际上是什么

转载 作者:行者123 更新时间:2023-12-02 12:23:40 25 4
gpt4 key购买 nike

我有以下测试:

test "users title when logged out" do
get users_path
assert_select "title", 'Correct title"
end

如果我们假设 users_path 返回一个带有 <title>Wrong title</title> 的页面,然后我得到以下输出:

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>'

我想用assert_equal "Correct title", page.title之类的东西替换assert_select这样测试失败消息实际上显示了页面的标题是什么,这将使跟踪问题变得更加容易! (当然,页面在开发模式下显示正确的标题...)

但是,page.title似乎不可用,我的搜索努力只找到了诸如“you can do it with Capybara”之类的内容,这对于这个目的来说有点笨重!

有没有办法编写此测试,使其显示类似 Expected page title to be "Correct title" but got "Wrong title" 的内容反而? [为清楚起见进行编辑:“错误标题”是返回页面中的标题,而不是文字字符串 - 也就是说,我需要错误来告诉我实际返回的内容。]

最佳答案

看起来答案是assert_equal '正确的标题', css_select('title').first.content

这提供了更有帮助的失败消息

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可能是更好的风格!)

关于ruby-on-rails - 让assert_select 告诉我元素实际上是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39064139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com