Hay bibliotecas que ayudan con esto:
Apache commons-lang
Si tiene Apache commons-lang en su classpath, puede usarlo DateUtils.truncate
para truncar las fechas en algún campo.
assertEquals(DateUtils.truncate(date1,Calendar.SECOND),
DateUtils.truncate(date2,Calendar.SECOND));
Hay una abreviatura para esto:
assertTrue(DateUtils.truncatedEquals(date1,date2,Calendar.SECOND));
Tenga en cuenta que 12: 00: 00.001 y 11: 59: 00.999 se truncarán a valores diferentes, por lo que esto podría no ser ideal. Para eso, hay ronda:
assertEquals(DateUtils.round(date1,Calendar.SECOND),
DateUtils.round(date2,Calendar.SECOND));
AssertJ
A partir de la versión 3.7.0, AssertJ agregó isCloseTo
aserciones, si está utilizando la API de fecha / hora de Java 8.
LocalTime _07_10 = LocalTime.of(7, 10);
LocalTime _07_42 = LocalTime.of(7, 42);
assertThat(_07_10).isCloseTo(_07_42, within(1, ChronoUnit.HOURS));
assertThat(_07_10).isCloseTo(_07_42, within(32, ChronoUnit.MINUTES));
También funciona con fechas de Java heredadas:
Date d1 = new Date();
Date d2 = new Date();
assertThat(d1).isCloseTo(d2, within(100, ChronoUnit.MILLIS).getValue());