gpt4 book ai didi

ruby-on-rails - have_selector 在 RSpec 测试中失败,但页面呈现正确并且标签存在

转载 作者:行者123 更新时间:2023-12-04 06:31:28 25 4
gpt4 key购买 nike

我正在学习 Hartl 的 Rails 教程一书,但我完全被其中一个测试卡住了。测试(直接从书中)非常简单:

require 'spec_helper'
describe UsersController do
render_views
describe "GET 'show'" do
before(:each) do
@user = Factory(:user)
end
...
it "should include the user's name" do
get :show, :id => @user
response.should have_selector('h1', :content => @user.name)
end
end

测试失败,出现以下错误:

UsersController GET 'show' should include the user's name
Failure/Error: response.should have_selector('h1', :content => @user.name)
expected following output to contain a <h1>Steve T</h1> tag:...

页面在浏览器中正确呈现。这是浏览器呈现的 HTML 源代码的片段:

<section class="round"><br/>
<h1>
<img alt="Steve T" class="gravatar" src="http://gravatar.com/..." />
Steve T
</h1>
</section>

我什至可以添加一个调用:print response.body在 Controller 规范中,它将正确输出标签。

关于我可能做错了什么有什么想法吗?

更新 - 似乎我们已经确定了一个潜在的重要项目:rspec 测试失败消息中的 HTML 丢失了其中所有内容的 body 标签。

1) UsersController GET 'show' should include the user's name Failure/Error: response.should have_selector('h1', :content => @user.name) expected following output to contain a <h1>Steve T</h1> tag: <!DOCTYPE html> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>Ruby on Rails Tutorial Sample App | Steve T</title> </head></html> # ./spec/controllers/users_controller_spec.rb:33:in block (3 levels) in <top (required)>'

有谁知道为什么,如果浏览器中的页面包含 <body>标签和内部内容以及 if print response.body显示内容,为什么错误信息会跳过它?

最佳答案

我在学习 Rails 教程时遇到了类似的问题。我忘记在最上面的“描述”语句下面包含“渲染 View ”,这导致“have_selector”测试失败。

关于ruby-on-rails - have_selector 在 RSpec 测试中失败,但页面呈现正确并且标签存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5292387/

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