Как проверить проблемы модели обратного вызова before_validation в rspec - PullRequest
0 голосов
/ 27 июня 2019

Я учусь писать спецификации для своего кода, и я все еще новичок в этом. Пытаюсь написать specs / SharedExamples для моих проблем с Моделью, но я не понимаю, как это написать, так как я нахожу это очень сложным.

Если бы кто-то мог мне помочь или показать, как писать спецификации для таких кодов, было бы очень полезно. Ниже моя забота AddStakeholder.

module AddStakeholder
  extend ActiveSupport::Concern

  included do
    before_validation -> { add_stakeholders }
  end

  private

  def add_stakeholders
    return unless self.stakeholder

    company = if self.is_a?(Certificate)
                self.round ? self.round.company : self.company
              else
                self.company
              end
    existing_stakeholder = company.stakeholders.find_by_email(self.stakeholder.email)
    if existing_stakeholder.present?
      if self.stakeholder.name == existing_stakeholder.name
        self.stakeholder = existing_stakeholder
      else
        self.stakeholder.company = company
      end
    else
      self.stakeholder.company = company
    end
  end
end

1 Ответ

0 голосов
/ 28 июня 2019

В вашем фрагменте кода недостаточно информации для подготовки полного примера, но он будет выглядеть примерно так:

RSpec.describe Thing, type: :model do
  it "adds stakeholders" do
    t = Thing.new(...)
    expect(t).to be_valid # or .to_not be_valid depending on your validations on Thing
    expect(t.stakeholder).to ... # whatever you expect it to be
  end
end
...