Я учусь писать спецификации для своего кода, и я все еще новичок в этом. Пытаюсь написать 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