【问题标题】:Do ActiveRecord queries search through the database while using rspec?ActiveRecord 查询是否在使用 rspec 时搜索数据库?
【发布时间】:2018-09-18 04:17:44
【问题描述】:

我正在尝试测试我的 Rails 模型。其中一些在模型内部有 find_by 查询。在 RSpec 之外,它似乎工作正常。但是在使用 RSpec 时似乎没有要搜索的数据库。我也在使用 FactoryGirl 来设置工厂。它搜索的数据库似乎是针对已创建的工厂的。我不确定为什么会这样,我只是想更好地了解正在发生的事情。谢谢。

【问题讨论】:

  • 您面临的问题是什么?可以显示一些代码来支持您的问题吗?
  • 除了设置(也就是定义工厂)之外,您还需要在规范中创建对象。因此,当您定义了 :user 工厂时,请像这样创建它:before { create(:user) }let!(:user) { create(:user) } - 只有这样,工厂才会将对象存储在数据库中
  • jack-nie 能够回答我的问题。基本上,我没有意识到当我使用 rSpec 时,我只连接到我的测试数据库而不是我的开发数据库。

标签: ruby-on-rails rspec rails-activerecord factory-bot


【解决方案1】:

当使用 RSpec 测试您的应用时,您的数据库环境为test,因此您已连接到您的测试数据库。

否则,假设您处于开发模式,那么您将连接到您的开发数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 2015-03-25
    相关资源
    最近更新 更多