Add section for designing tests to pass regardless of time of execution

Kristina Lim
2019-02-07 19:00:47 +08:00
parent fce451d4e6
commit d6952ee7af

@@ -67,4 +67,16 @@ Date.new(2019, 1, 2).to_formatted_s(:long)
# One space before day of month
Date.new(2019, 1, 20).to_formatted_s(:long)
# => "January 20, 2019"
```
```
### Design tests to pass regardless of time of execution
A test may be run at any time of day, any day of month, and any calendar month. Make sure that the test will always pass.
Some things to watch out for:
* `now + 1.hour` can still be part of today, or it can be tomorrow.
* `today - 1.day` can be in the current calendar month, or last month
* `today + 1.day` can be part of this calendar year, or next year
If needed, you may also use `Timecop` to mock the time at which the test thinks it is running.