gst*_*low 2 java unit-testing date mockito powermockito
我的代码中有一个方法可以验证当前是否有业务.它检查数据库日历.
方法看起来像这样:
public boolean iBusinessDayToday() {
LocalDate today = LocalDate.now();
//logic with today
}
Run Code Online (Sandbox Code Playgroud)
我需要为此编写单元测试.
我希望单位测试不依赖于工作日.
您认为使用powerMockito进行模拟需要这个问题LocalDate.now()吗?
另一种方法是将时钟传递给方法:
public boolean iBusinessDayToday() {
return iBusinessDayToday(Clock.systemDefaultZone());
}
@VisibleForTesting
boolean iBusinessDayToday(Clock clock) {
LocalDate today = LocalDate.now(clock);
//logic with today
}
Run Code Online (Sandbox Code Playgroud)
现在,您可以测试第二种方法并传递固定时钟 - 无需使用模拟框架.