我想使用rspec为模型编写单元测试。我也想为关联编写测试。我不知道如何开始。任何人都可以帮我解决这个问题吗?
工作模式
class Job < ApplicationRecord
belongs_to :user
belongs_to :category
belongs_to :company
accepts_nested_attributes_for :company
has_attached_file :image, styles: {medium: "800x800>", thumb: "100x100>"}, default_url: "/images/:style/missing.png"
validates_attachment_content_type :image, content_type: /\Aimage\/.*\z/
validates :title, presence: true
validates :title, length: {minimum: 5, maximum: 15}
validates :description,length: {minimum: 10, maximum: 400}
job_spec.rb
RSpec.describe Job, type: :model do
it "ensures title presence" do
# job=Job.new(title:'software engineer').save
expect(job).to validate_presence_of(:title)
end
end
答案 0 :(得分:0)
gem shoulda-matchers使用ActiveRecord匹配器解决了这个问题。
RSpec.describe Job, type: :model do
it { should belong_to(:user) }
end
要测试关联,您可以使用以下匹配器:
belong_to
:测试您的belongs_to协会。have_and_belong_to_many
:测试你的has_and_belongs_to_many
关联。have_many
:测试你的has_many关联。have_one
:测试你的has_one关联。您甚至可以使用ActiveModel匹配器测试验证。
了解详情documentation page。