首页 > 解决方案 > Java (JUnit5) 测试挑战

问题描述

我有一类与 DateTime 相关的便捷方法,它可以获取当前年份或当前时间等信息。我刚刚将它全部更新为使用 java.time.* 类,并且正在尝试编写良好的 JUnit 5 测试以确保它们正常工作。

我显然需要确定一个预期结果来与每个实际结果进行比较,但是我很难想出一种计算预期结果的好方法。(如果我不在预期结果中指定的日期进行测试,对当前小时、分钟或秒等值以及更大的单位(如日)进行硬编码的预期值不是很令人满意。)

我的方法基于 LocalDate.now() 方法,因此使用相同的方法计算预期结果似乎毫无意义;这可能只能证明预期结果和实际结果是相同的,但都是错误的。这是一个合理的反对吗?

如果是,那么我应该如何计算预期结果?许多旧的日期和时间类在很大程度上已被弃用,每个人都知道它们的不足之处。我是否应该使用它们并希望这些缺陷都不会给我带来误报或否定?

还是有更好的方法继续?

标签: javatime

解决方案


推荐阅读