我有一个带有方法的服务
:
Entity entity = new Entity(new Date(), 1, 2L);
return entityRepository.save(entity);
我的测试:
@Test
public void testSaveEntity() {
Entity entity = new Entity(new Date(), 1, 2L);
entityService.saveEntity(1, 2L);
verify(entityRepository, times(1)).save(entity);
}
如果
Entity
的equals()
方法不比较Date
,一切都好,但是如果比较Date
,那么测试会抛出Argument(s) are different!
异常。
Date
? - MC EmperorDate
。这个类设计很差,而且已经过时了。相反,应该使用适当的类来自于java.time,现代Java日期和时间API。 - Ole V.V.new Date()
,则很可能会得到两个不相等的对象。这很令人困惑。使用java.time,并像Lesiak所说的那样使用java.time.Clock
。 - Ole V.V.Date
类,分别是java.util.Date
和java.sql.Date
。这两个类都存在严重缺陷,应该避免使用。多年前,它们被现代的java.time类所取代。具体而言,分别被Instant
和LocalDate
所替代。 - Basil Bourque