In this post I will provide an example why Ruby on Rails is great framework that has testability in its core design.
Time is a measure in which events can be ordered from the past through the present into the future, and also the measure of durations of events and the intervals between them. Time is often referred to as the fourth dimension, along with the three spatial dimensions [source: Wikipedia].
When tester needs to test time related features, he needs to become time traveler. Ruby on Rails has very interesting time machine. It consists of Rails console and panel that helps you to set in which direction you are traveling.
Using that time machine, you can easily simulate time lapses. For example, using UI interface, you created one business object. Features says that email about this object should be sent after one week. What is easier, setting the machine system time, or simulate that time lapse in Ruby console? Here is gist:
Instead of setting system time one week in the future, we updated object time to be one week in the past. Notice plain english for setting created_at parameter! Refer to [direction you are traveling] link for more time calculation idioms.
Congratulations on your first time travel in Ruby on Rails framework!
But I am not using Ruby on Rails framework! Do not worry, by knowing Rails time machine, consult your developer does his framework has something similar.