【发布时间】:2016-12-20 17:50:27
【问题描述】:
在测试实体更新时,我还想确保日期工作正常。在我的实体中,我有:
@PreUpdate
private void onUpdate() {
this.lastUpdated = new LocalDateTime();
}
当我测试更新的品牌时,我创建了品牌,修改它,然后调用更新,之后我重新获取品牌以断言我可以通过更改的值找到它。
保存和更新之间的时间通常很短,最终日期相同:
assertThat(first.getLastUpdated().isBefore(brand.get().getLastUpdated())).isEqualTo(true);
我目前通过在保存和更新之间添加Thread.sleep(100) 调用解决了这个问题,但我的直觉认为这是一个非常糟糕的主意。想法?
【问题讨论】:
-
我会看看这个,并重组我的代码,正如接受的答案所暗示的那样。 stackoverflow.com/questions/11887799/… 其次,你应该能够假设
@PreUpdate正在按预期工作,如果你想确保你的方法被注释,做一个小单元测试来验证这一点。如果它支持,您也可以让数据库处理 on update(我实际上更喜欢这个)
标签: spring spring-boot integration-testing