У меня есть модель ActiveRecord с некоторыми обратными вызовами и пользовательскими проверками, которые я хочу протестировать. Это означает, что я должен сделать их все общедоступными. Это хорошая практика или есть лучшее решение в этом случае?
Примеры методов, которые я хочу протестировать:
def before_validation
original.edit(self) if original
end
validate :unique?, on: :create
def unique?
return true if original.blank?
errors.add(:base, 'The entry already exists')
false
end
Другими словами:
Проблема в том, что ни один из этих методов я не использую за пределами своей модели (поэтому они должны быть закрытыми), но как я могу протестировать их, не делая их общедоступными?