java如何使用Spock在LocalDate中模拟静态方法?
我想模仿LocalDate.now()
每次都在同一个日期返回
为此,我尝试了两种不同的选择:
第一:LocalDate.now() >> LocalDate.of(2020, 05, 07)
第二:
def today = GroovyMock(LocalDate) {
getYear() >> 2020
getMonth() >> Month.APRIL
getDayOfMonth() >> 24
getDayOfWeek() >> DayOfWeek.FRIDAY
}
LocalDate.now(timeZone) >> today
但是它对我没有帮助,LocalDate.now()
在调用代码时仍然返回当前日期。我怎样才能达到这个目标。现在()每次都把模拟日期还给我
# 1 楼答案
不要这样做。
Clock
类的存在正是因为这个原因。在测试的类中,添加一个带有setter的属性:使用
在测试用例中,用测试时钟替换默认的“真实时钟”: