模拟@UpdateTimestamp休眠注释

时间:2019-12-12 11:34:38

标签: java hibernate mockito

我有一个具有Updated_time列的实体。 实体使用@UpdateTimestamp休眠注释自动处理更新。 在测试中,我需要从7天前开始使用update_time值播种一些旧数据。

是否可以模拟@UpdateTimestamp以返回特定日期,而不必模拟System.currentTimeMillis()

注意: 我使用的测试框架是用于模拟的JUnit&Mockito。

1 个答案:

答案 0 :(得分:0)

我很惊讶,如果有一个模仿注释,那实际上不是它的范围。您可以在测试中使用休眠post load interceptor来更新数据。

但是,如果要获得更高的可靠性,可以use dbunit并在每次测试之前创建正确的数据库设置,因此无需进行休眠操作。

可以为此目的而在内存中添加一个db,并为每个测试从头开始创建测试数据,因此您无需绑定到某些现有的数据设置。我认为H2很受欢迎。