![]() |
1
68
还有一个解决办法,我会这样做:
|
![]() |
2
67
阿帕奇公地酒店
Apache commons-lang
在类路径上,可以使用
请注意,12:00:00.001和11:59:00.999将截断为不同的值,因此这可能并不理想。为此,有以下几点:
从3.7.0版开始,
AssertJ
它也适用于传统的java日期:
|
![]() |
3
25
使用
|
![]() |
4
7
你可以这样做:
|
![]() |
5
6
在JUnit中,您可以编写两个断言方法,如下所示:
|
|
6
5
|
![]() |
7
4
我不知道JUnit中是否有支持,但有一种方法可以做到:
|
![]() |
8
3
这实际上是一个比看起来更难的问题,因为在边界情况下,您不关心的方差超过了您正在检查的值的阈值。e、 g.毫秒差小于一秒,但两个时间戳跨过第二阈值、分钟阈值或小时阈值。这使得任何DateFormat方法都天生容易出错。 相反,我建议比较实际的毫秒时间戳,并提供一个方差增量,指示您认为两个日期对象之间的可接受差异。下面是一个过于冗长的示例:
|
![]() |
9
2
匹配器 用于根据您选择的精度确定测试日期。在本例中,匹配器将字符串格式表达式作为参数。对于这个例子,代码没有更短。但是,matcher类可以重用;如果你给它一个描述的名字,你可以用一种优雅的方式记录测试的意图。
|
|
10
2
对Joda Time使用AssertJ断言( http://joel-costigliola.github.io/assertj/assertj-joda-time.html
测试失败消息更具可读性
|
|
11
1
如果你用的是乔达,你可以用 Fest Joda Time . |
![]() |
12
1
只需比较您感兴趣的日期部分:
|
![]() |
13
1
JUnit有一个内置的断言,用于比较double,并指定它们需要接近的程度。在本例中,增量是指您认为日期相等的毫秒数。此解决方案没有边界条件,测量绝对方差,可以轻松指定精度,并且不需要编写额外的库或代码。
注 它必须是100.0而不是100(或者需要转换为double),才能强制将它们作为double进行比较。 |
![]() |
14
1
|
![]() |
15
0
类似的方法可能会奏效:
|
![]() |
16
0
在测试中,您可以注入一个
|
![]() |
17
0
|
![]() |
19
0
这是一个实用函数,它为我完成了这项工作。
|
![]() |
20
0
|
![]() |
21
-2
我将对象强制转换为java.util.Date并进行比较
|