【问题标题】:Testing models with multiple database connections in Rails using ActiveRecord使用 ActiveRecord 在 Rails 中测试具有多个数据库连接的模型
【发布时间】:2009-04-14 21:39:50
【问题描述】:

在 Rails 中测试使用不同数据库连接的模型的最佳方法是什么。例如,我有一个只读模型 FooBar:

class FooBar < ActiveRecord::Base
  establish_connection configurations['foo_bars']
  # ...
end

有什么好的约定、技巧或插件吗?

【问题讨论】:

  • 如果它是只读的......你到底在测试什么?我假设(因为它是只读的)数据是从其他地方输入的,而 Rails 只是在使用它?
  • 我正在测试一些查询逻辑。 FooBar 可以连接来自同一数据库(连接)的表。我还想测试 FooBar 与其他模型的交互性。

标签: ruby-on-rails ruby testing activerecord database-connection


【解决方案1】:

根据我的经验,一旦建立连接,您就可以像对待任何其他模型一样对待模型。由于您只是在使用将简化一些测试的数据,因为您不需要测试数据验证。

显然,因为 Rails 正在与来自两个不同模型的两个不同数据库进行通信,所以您将无法在数据库之间进行连接,因此那里也没有什么可以测试的。

那么,回答这个问题:测试使用第二个数据库的模型的最佳方法是什么?我想说,如果它是你唯一的数据库,你会用同样的方式测试它。

我发现在包装旧数据库的模型中,我必须在代码中添加一些特殊的联系,使事情更加“Rails-y”,并使视图和控制器代码看起来像 has_one 和 @ 987654322@ 在那里输入代码。我确实有执行这些自定义方法的测试。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2011-12-19
    • 1970-01-01
    相关资源
    最近更新 更多