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