【发布时间】:2011-08-03 02:13:17
【问题描述】:
我需要测试一个函数,它的结果将取决于当前时间(使用 Joda 时间的isBeforeNow(),它发生了)。
public boolean isAvailable() {
return (this.someDate.isBeforeNow());
}
是否可以使用(例如使用 Mockito)来存根/模拟系统时间,以便我可以可靠地测试该功能?
【问题讨论】:
-
对于某些函数,最简单的解决方案是将当前时间作为参数传递。
-
直到由于夏令时突然单元测试失败;)
-
就像模拟一样,它不必是实际的当前时间。你可以硬编码一个安全的瞬间。