【问题标题】:How to update the value for each rspec test?如何更新每个 rspec 测试的值?
【发布时间】:2023-04-09 04:18:01
【问题描述】:

我正在开发一个 Rails 项目。最近我为模型添加了验证。下面是验证。

class Hub < ActiveRecord::Base
    belongs_to :property, class_name: 'Property', foreign_key: :property_id
    validates :property_id, uniqueness: { allow_nil: true }

但在大多数情况下,我们在 rspecs 中使用 @property。 例如:let(:hub) { FactoryGirl.create(:hub1,​​ property: @property) }。因此,由于验证,所有 rspecs 都失败了。但我需要验证。解决所有失败的 rspec 的有效方法是什么。

【问题讨论】:

    标签: ruby-on-rails unit-testing ruby-on-rails-4 rspec rspec-rails


    【解决方案1】:

    我会建议,如果你可以移动let(:hub) {FactoryGirl.create(:hub1, property: @property)} 在您创建@property 的位置旁边,可能在所有测试用例的钩子之前,使用FactoryGirl.build 而不是create(以防您需要将集线器保留在测试用例中)。通过这样做,您可以在所有测试用例中使用该集线器。

    如果单个测试用例中有多个集线器,那么我认为您将不得不创建新的属性记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多