gpt4 book ai didi

ruby - Capybara 和 Rails 的 have_content 规范未能测试是否出现部分消息

转载 作者:太空宇宙 更新时间:2023-11-03 16:51:51 24 4
gpt4 key购买 nike

我有一个请求规范,该规范一直传递到我需要检查页面上是否存在内容,我正在使用 page.should have_content 来执行此操作。内容实际上是在成功提交表单时出现的一条消息,它是从消息部分呈现的。即使我通过浏览器进行测试,功能仍会按预期运行并且内容会按预期显示,但测试仍会失败。我还使用 FactoryGirl 生成用于表单提交的用户。

这是使用 --format d 选项运行规范后出现的错误:

UserSignup
shows a thank you message on successful form submission (FAILED - 1)

Failures:

1) UserSignup shows a thank you message on successful form submission
Failure/Error: page.should have_content("Thank you. You will be notified of our launch at #{user.email}.")
expected #has_content?("Thank you. You will be notified of our launch at quinn.purdy@casperzboncak.org.") to return true, got false
# ./spec/requests/user_signup_spec.rb:21:in `block (2 levels) in <top (required)>'

user_signup_spec.rb:

require 'spec_helper'
describe "UserSignup" do
it "shows a thank you message on successful form submission" do
user = FactoryGirl.create(:user)
visit sign_up_path
fill_in "user_fullname", with: user.fullname
fill_in "user_email", with: user.email
click_button "Sign up"
current_path.should eq(sign_up_path)
page.should have_content("Thank you. You will be notified of our launch at #{user.email}.")
end
end

用户 Controller .rb:

class UsersController < ApplicationController
def new
@user = User.new
end

def create
@user = User.new(secure_params)
if @user.valid?
@user.subscribe
flash[:notice] = "Thank you. You will be notified of our launch at #{@user.email}."
redirect_to sign_up_path
else
render :new
end
end


private

def secure_params
params.require(:user).permit(:fullname, :email)
end

end

我想知道这是否可能是因为我从应用程序布局中呈现部分消息,但是当它在用户 View 中输出时,消息出现在源的 body 中,但是在 main 类之外。

最佳答案

因此,我似乎通过在“it”旁边添加行 , :js => true do 并使用 selenium 网络驱动程序来让测试通过。我在想,必须有一种方法可以在没有 Selenium 的情况下做到这一点,因为你必须坐下来等待它实际在浏览器中运行,这是不利的。

也许我做错了,我实际上应该在 View 规范中检查部分内容(目前它只是功能测试的一部分)。

关于ruby - Capybara 和 Rails 的 have_content 规范未能测试是否出现部分消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19602975/

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