Должен/написаны ли они до вас - условной проверки


в моем коде у меня была следующая проверка с shoulda matchers, которая отлично работает:

it { should validate_presence_of(:name) }

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

validates_presence_of :name, :if => eligible?

можно ли отразить это в проверки?

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

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

1 59

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