у меня есть два атрибута внутри моей модели, которые разделяют те же валидацииRSpec - Тестирование ошибок для 2 атрибутов, которые разделяют ту же проверку (ы)
validates :first_name, :last_name, length: {minimum: 2}
Прямо сейчас я атрибут :first_name
испытываться следующим образом:
RSpec.describe User, :type => :model do
it 'is invalid if the first name is less than two characters'
user = User.create(
first_name: 'a'
)
expect(user).to have(1).errors_on(:first_name)
end
ради разработчика, который не знаком с тем, как я установки моей моделью, которую я хотел бы явно указать отношения двух атрибутов с чем-то вроде этого:
it 'is invalid if the first name and/or last name has less than two characters'
user = User.create(
first_name: 'a',
last_name: 'b
)
expect(user).to have(1).errors_on(:first_name, :last_name)
Очевидно, что это бросает ошибку:
wrong number of arguments (2 for 0..1)
То же самое будет применяться, если я установил 2 два валидаций:
validates :first_name, :last_name, length: {minimum: 2}, format: {with: /^([^\d\W]|[-])*$/}
И попытаться проверить на 2 ошибки:
it 'is invalid if the first name and/or last name has less than two characters and has special characters'
user = User.create(
first_name: '@',
last_name: '#
)
expect(user).to have(2).errors_on(:first_name, :last_name)
цель 'длины: {минимум: истинно}', чтобы убедиться, что это не пустой? – Anthony
Спасибо, что указали это. Теперь изменилось на: 'length: {minimum: 2}'. Цель состоит в том, чтобы убедиться, что они печатают более двух символов. –
Обновлен мой ответ. – Anthony