如何模拟当前日期?
How to mock current date?
我的代码中有一个方法可以验证当天是否正常营业。它为此检查数据库日历。
方法如下所示:
public boolean iBusinessDayToday() {
LocalDate today = LocalDate.now();
//logic with today
}
我需要为此编写单元测试。
我希望单元测试不依赖于工作日。
你觉得这个问题需要用powerMockito来模拟什么LocalDate.now()
?
另一种方法是将时钟传递给方法:
public boolean iBusinessDayToday() {
return iBusinessDayToday(Clock.systemDefaultZone());
}
@VisibleForTesting
boolean iBusinessDayToday(Clock clock) {
LocalDate today = LocalDate.now(clock);
//logic with today
}
现在您可以测试第二种方法并通过 a fixed clock - 无需使用模拟框架。
我的代码中有一个方法可以验证当天是否正常营业。它为此检查数据库日历。
方法如下所示:
public boolean iBusinessDayToday() {
LocalDate today = LocalDate.now();
//logic with today
}
我需要为此编写单元测试。
我希望单元测试不依赖于工作日。
你觉得这个问题需要用powerMockito来模拟什么LocalDate.now()
?
另一种方法是将时钟传递给方法:
public boolean iBusinessDayToday() {
return iBusinessDayToday(Clock.systemDefaultZone());
}
@VisibleForTesting
boolean iBusinessDayToday(Clock clock) {
LocalDate today = LocalDate.now(clock);
//logic with today
}
现在您可以测试第二种方法并通过 a fixed clock - 无需使用模拟框架。