У меня есть следующий метод, который я хотел бы проверить с помощью 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