gpt4 book ai didi

ruby-on-rails - capybara 断言在 Poltergeist 下失败

转载 作者:行者123 更新时间:2023-11-28 19:56:09 26 4
gpt4 key购买 nike

我有以下规范:

# MUST BE TESTED WITH JAVASCRIPT. As you can see before, it is allowing
# the Log Out link. On a real page, that element is hidden.
it "logs out a user" do
user = login_user
click_link user.email
click_link "Log Out"
assert page.has_content?('Logged out')
assert page.has_content?('Company Profile')
end

我的 login_user 方法在我的 spec_helper.rb 文件中,如下所示:

def login_user(admin = false)
user = FactoryGirl.create(:user, :admin => admin)
visit login_path
fill_in 'Email', :with => user.email
fill_in 'Password', :with => user.password
click_button 'Go'
assert page.has_content?('Logged in')
user
end

当我将 , js: true 添加到我的规范时,最后一个 assert 失败了。

当我在它之前执行 save_and_open_page 时,Up 出现了零 CSS 的页面,从那以后可能也没有 JS。由于某种原因,它没有读取 Assets 。我认为当您运行测试时,它会像在开发模式下一样读取 Assets 。我真的需要帮助。

最佳答案

我在 this question 中找到了答案.这非常棘手。我仍然不确切地知道为什么首先失败了,但不用说 RSpec/Capybara/PhantomJS/Poltergeist/Guard/Spork/FactoryGirl 有很多事件部件。

请点击链接查看答案。它必须与事务固定装置并启用 DatabaseCleaner gem。两次陈述答案没有任何好处,我将把那个作为规范答案。

UPDATE

实际上这个问题与 Poltergeist/PhantomJS 下数据库连接不共享有关。 Plataformatec 的人在他们的 blog 上有一个更好的解决方案其中不涉及 DatabaseCleaner gem 的使用。

重要提示

对于同时使用 Spork 的 Postgres 用户,博客解决方案将无法按规定工作。换句话说,如果您将 shared_db_connection.rb 文件放在您的 spec/support 目录中,您将得到一个 PG::Error connection closed信息。将文件保留在 spec/support 中,但删除此行:

  ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection

而是将其放入 spec_helper.rb 文件中的 Spork.each_run block 中。

关于ruby-on-rails - capybara 断言在 Poltergeist 下失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16365810/

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