【发布时间】:2017-07-25 03:51:11
【问题描述】:
在 Spring Data 和 Spring Data REST 项目中测试时间相关业务逻辑的最佳实践是什么? 如何在一种测试方法中设置不同的“系统”时间?
例如 - 我们有两种不同的算法来解决相同的任务 - 一种算法在 11-00 之前使用,另一种算法在 11-00 之后使用。
或者我们有一项任务只能在星期一执行……
【问题讨论】:
标签: spring-boot spring-data spring-data-rest
在 Spring Data 和 Spring Data REST 项目中测试时间相关业务逻辑的最佳实践是什么? 如何在一种测试方法中设置不同的“系统”时间?
例如 - 我们有两种不同的算法来解决相同的任务 - 一种算法在 11-00 之前使用,另一种算法在 11-00 之后使用。
或者我们有一项任务只能在星期一执行……
【问题讨论】:
标签: spring-boot spring-data spring-data-rest
如果方法依赖于当前日期或时间,则添加当前时间作为参数:
public void doSomething(LocalDateTime now) {
// does something time-dependent
}
实际代码使用doSomething(LocalDateTime.now()) 调用此方法。
测试使用“测试日期”调用此方法
doSomething(LocalDateTime.of(2017, 3, 5, 13, 37)); // Sunday
doSomething(LocalDateTime.of(2017, 3, 6, 13, 37)); // Monday
【讨论】: