鉴于一个典型的ActiveRecord模型,我经常有before_save
回调解析输入,例如从用户采取类似time_string
和解析它到time
字段。Rails:如何测试before_save回调
即设置看起来像这样:
before_save :parse_time
attr_writer :time_string
private
def parse_time
time = Chronic.parse(time_string) if time_string
end
据我所知,它被认为是最好的做法,使回调方法私有。但是,如果他们是私人的,那么你不能单独调用他们来单独测试他们。
因此,对于你来说,经验丰富的Rails测试人员,你如何处理测试这种事情?
你在哪里使用'time'变量?是你的对象的属性? –
上面的例子是一种捏造,但是,时间变量是一个对象属性。 – Andrew