Подтвердить что ты не робот

Сопротивления Shoulda/RSpec - условная проверка

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

it { should validate_presence_of(:name) }

В моей модели я добавил условие к моей проверке:

validates_presence_of :name, :if => eligible?

Можно ли отразить его в валидации?

Я пробовал посмотреть документацию для помощников по назначению, но не смог найти решение.

Большое спасибо!

4b9b3361

Ответ 1

Кажется, что shoulda_matchers не делают этого, но достаточно легко написать его сами:

  context "if eligible" do
    before { allow(subject).to receive(:eligible?).and_return(true) }
    it { should validate_presence_of(:name) }
  end

  context "if ineligible" do
    before { allow(subject).to receive(:eligible?).and_return(false) }
    it { should_not validate_presence_of(:name) }
  end