我有rspec语法的问题

时间:2018-02-13 13:00:12

标签: ruby-on-rails rspec

我想使用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

1 个答案:

答案 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