当属于_to

问题描述 投票:0回答:1

在我的 Rails 应用程序中,我有一个模型

Profile
belongs_to
User
如下:

class User < ApplicationRecord
 has_many :profiles
end

class Profile < ApplicationRecord
  belongs_to :user
  
  validates :user_id, presence: true
end

Profile的工厂如下:

FactoryBot.define do
  factory :profile do
    sequence(:name) { |n| "Profile #{n}" }
    association :user
  end
end

现在模型测试中的这个测试失败了:

  it 'should have a valid factory' do
    expect(build(:profile)).to be_valid
  end

这里我不确定哪一部分是错误的。是否测试

user_id
的存在。验证器应该不同吗?或者我应该在配置文件之前创建一个用户。这似乎也不正确,因为这是一个错误的测试,因为工厂应该这样做。

我做错了什么?

ruby-on-rails rspec
1个回答
0
投票

整个shebang。

您的测试应该测试应用程序的行为而不是工厂的行为。

如果您想健全性测试您的工厂是否生成有效记录,您可以通过检查您的工厂来实现。这很简单:

FactoryBot.lint

此步骤通常包含在引导测试套件中。

自 2018 年 Rails 5 发布以来,

belongs_to
还默认添加了验证。

© www.soinside.com 2019 - 2024. All rights reserved.