Given a typical ActiveRecord model, I often have before_save callbacks that parse input, for instance taking something like time_string from the user and parsing it into a time field.
That setup might look like this:
before_save :parse_time
attr_writer :time_string
private
def parse_time
time = Chronic.parse(time_string) if time_string
end
I understand that it’s considered best practice to make callback methods private. However, if they’re private, then you can’t call them individually to test them in isolation.
So, for you seasoned Rails testers out there, how do you handle testing this kind of thing?
In Ruby, Private methods are still available via
Object#sendYou can exploit this for your unit testing like so: