java - 如何测试两个 Joda-Time DateTime 对象是否几乎相等?

标签 java unit-testing

在单元测试中,我经常使用在 now() 或关于 now() 时返回 DateTime 的方法。有没有办法说 actual DateTime 在 actual DateTime 的几秒内?

最佳答案

这听起来像是个坏主意。单元测试不应该以任何方式依赖于当前的实际时间......这就是为什么在你的类的构造函数中注入(inject)一些接口(interface)(可能称为 Clock )并将其用作源是一个好习惯当前时间。然后在您的单元测试中,您可以使用一个特殊的实现,您可以控制它返回的时间,使您的测试具有确定性。

就是说,我相信您可以通过创建新的 DateTime 轻松编写一个方法来检查 DateTime 是否在另一个 DateTime 的特定范围内通过添加和减去所需的秒数然后进行比较。

关于java - 如何测试两个 Joda-Time DateTime 对象是否几乎相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4809939/

相关文章:

PHPUnit 测试套件包含路径

unit-testing - t.Cleanup有什么用?

java - 方法覆盖是否总是运行时多态性?

java - 如何在不更改代码的情况下从编译的 jar 中检索完整的异常消息?

java - 使用ProcessBuilder执行需要命令行输入的命令

unit-testing - 我应该将我的单元测试和集成测试分成单独的项目吗

java - 如何有选择地重置数组的维度?

2 个线程的 Java 扫描器

java - 代码覆盖率未达到类声明

c# - MSTEST 中的 DataTestMethod 和 DataRow 属性