RSpec: проверить, был ли метод вызван с правильным днем ​​в качестве аргумента - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть следующий метод, который я хотел бы проверить с помощью RSpec:

def create_monday_meetups
  start_date = Date.current.monday? ? Date.current : Chronic.parse('monday').to_date

  MeetupServices::CreateMeetups.new(start_date: start_date, continuous: false)
end

Я хочу проверить, вызывается ли служба с подходящим днем ​​в качестве аргумента (в данном случае понедельник).Я знаю, что не должен проверять присвоение локальных переменных, но это единственное место, где я могу проверить, правильно ли назначается дата (так как аналогичные методы вызываются для других дней с различными опциями, поэтому я не могу проверить это изсама служба).

Я знаю метод RSpec "Fore_to_receive", но я не могу заставить его работать с назначением дня.


РЕДАКТИРОВАТЬ:


Исправил проблему сам, вот решение:

allow(MeetupServices::CreateMeetups).to receive(:new).with(hash_including(:start_date, :continuous)) do |args|
  expect(args.fetch(:start_date).tuesday?).to be true
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...