我是RSpec的新手,我想测试一个控制器的if-else条件,我在互联网上搜索但发现的结果不能很好地满足我的搜索查询。
这是我的rails控制器:
class ScheduleTimeSlotsController < ApplicationController
def get_available_schedules
if params[:for_date].to_date==Date.today
available_schedules=ScheduleTimeSlot.where(:doctor_id => params[:dr_id],:date=>params[:for_date].to_date,:status=>"vacant",:archive=>false).where("start_time >=?",Time.now.seconds_since_midnight).reorder(:start_time)
else
available_schedules=ScheduleTimeSlot.where(:doctor_id => params[:dr_id],:date=>params[:for_date].to_date,:status=>"vacant",:archive=>false).reorder(:start_time)
end
render :json =>{:available_schedules=>available_schedules}
end
end
我使用的是ruby版本2.2.4,rails版本是4.2.0
请指导我如何在一个例子的帮助下为这种情况编写RSpec。
提前致谢。
答案 0 :(得分:2)
您需要为控制器运行两个测试。在一个通行证中,今天是一个日期,一个不是并且测试响应的日期。这里:
[(2, 1), (3, 0)]
免责声明:此代码未经测试,因为我无法访问实际应用。