【问题标题】:how to test CMS page content of Rails 4 app using rspec如何使用 rspec 测试 Rails 4 应用程序的 CMS 页面内容
【发布时间】:2013-10-25 20:22:07
【问题描述】:

我在 Rails 4 应用程序上安装了 Comfortable Mexican Sofa,我的 rspec 测试的访问功能无法找到 CMS 页面。我找到了两个补救措施:1)以下 bash 命令

pg_dump harvey_development > db.dump
psql harvey_test < db.dump

2) 将以下内容添加到 spec_helper.rb:

ENV["RAILS_ENV"] = 'development'

我怀疑更好的解决方案是配置一些东西,使 rspec 始终使用开发数据库来提供 CMS 内容,并使用测试数据库来处理其他所有内容。我的问题是:这个问题的最佳解决方案是什么?以及如何实现它?在此先感谢您提供的任何帮助,即使是朝着正确方向做出的模糊手势。

【问题讨论】:

    标签: ruby-on-rails postgresql rspec comfortable-mexican-sofa


    【解决方案1】:

    看这里:https://github.com/comfy/comfortable-mexican-sofa/wiki/Docs:-CMS-Seeds#using-cms-seeds-in-tests

    此外,根据您构建测试的方式,您可以直接点击夹具导入器: ComfortableMexicanSofa::Fixture::Importer.new(from, to, :force).import! 其中from 是文件夹名称,to 是站点标识符。

    Rake 任务运行良好,因为它在整个测试运行期间仅加载一次 cms 内容。如果您正在运行重点测试,它也不会被触发。至少在使用 TestUnit 时,我个人不喜欢 RSpec。

    【讨论】:

    • 感谢您的帮助。我一直无法让导入器在测试环境中工作,因为我无法弄清楚如何创建 rake 任务。不过,我将不得不再次推迟这个问题,所以我将把它标记为已解决。再次感谢。
    • 您将 rake 内容保存在 /lib/tasks/ 中,只需在其中创建 whatever.rake 文件即可。
    • 我必须使用 root 权限来创建灯具。我是否必须让 rake 任务具有 root 权限才能将它们导入到测试数据库?如果是这样,你知道我会怎么做吗?
    • 为什么需要 root 权限来管理灯具? Fixtures 应该与其他应用程序文件具有相同的访问权限(如非 root)
    • 我得到了要执行的任务:bundle exec rake test:prepare。但是,出于某种原因,这些装置正在被导入我的开发数据库中。现在我不必发布另一个问题:“为什么东西会神秘地从我的开发数据库中消失?”
    猜你喜欢
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    相关资源
    最近更新 更多