【问题标题】:RSpec setup for an application that depends on an external database from another application依赖于来自另一个应用程序的外部数据库的应用程序的 RSpec 设置
【发布时间】:2010-12-19 11:55:33
【问题描述】:

我不得不向依赖于另一个应用程序的数据库的应用程序添加功能。我已经能够建立到这个外部数据库的连接并从中提取数据。但是,我不确定如何让我的主应用程序为这个外部应用程序创建一个测试数据库。

如果有某种方法可以提取此数据库的架构并以与 'rake db:test:prepare' 相同的方式创建它,那就太棒了。 RSpec 是否有任何配置功能可以执行此操作,还是我必须自己完成任务?

【问题讨论】:

    标签: ruby-on-rails ruby database rspec external


    【解决方案1】:

    我不知道有任何简单的方法可以做到这一点。 您可以准备一个 sql 模式并通过自定义 rake 任务将其加载到您的测试数据库中

    但如果是为了测试,你最好看看工厂 例如Factory girl

    "factory_girl 是一个夹具替代品,具有简单的定义语法,支持多种构建策略(保存的实例、未保存的实例、属性哈希和存根对象),并支持同一类的多个工厂(user、admin_user 和等等),包括工厂继承。”

    还有一个screencast

    【讨论】:

      【解决方案2】:

      这是一个 Rails 应用程序吗?如果是这样,即使您使用的是 RSpec,db:test:prepare 任务和相关任务仍然可以工作。

      【讨论】:

      • 忘了说。是的,它是一个 Rails 应用程序。我不确定 db:test:prepare 在这种情况下是否有效。此任务如何知道要创建哪些数据库。我可以将它指向另一个应用程序的数据库模式,以便它也包含该数据库吗?
      【解决方案3】:

      我最终只是为外部应用程序运行rake db:test:prepare 并更新我正在开发的应用程序的数据库配置以包含外部应用程序的测试数据库。我想为外部应用程序自动化 rake db:test:prepare,但是我不认为自己经常更新其架构。

      【讨论】:

        猜你喜欢
        • 2011-12-05
        • 1970-01-01
        • 2016-06-24
        • 1970-01-01
        • 1970-01-01
        • 2018-01-17
        • 1970-01-01
        • 2012-05-29
        • 1970-01-01
        相关资源
        最近更新 更多