RSpec:检查是否以正确的日期作为参数调用了方法

时间:2018-09-29 09:20:15

标签: ruby-on-rails rspec

我要使用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的“ expect_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

0 个答案:

没有答案