【问题标题】:Mock @UpdateTimestamp Hibernate Annotation模拟 @UpdateTimestamp 休眠注解
【发布时间】:2020-04-05 18:59:36
【问题描述】:

我有一个包含 updated_time 列的实体。 实体使用@UpdateTimestamp hibernate 注解自动处理更新。 在我的测试中,我需要使用 7 天前的 update_time 值播种一些旧数据。

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

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

【问题讨论】:

    标签: java hibernate mockito


    【解决方案1】:

    我会感到惊讶,如果有一个 mockito 注释,那并不是它的真正范围。您可以在测试中使用 Hibernate post load interceptor 来更新您的数据。

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

    为此,您可以使用一个内存数据库,并为每个测试从头开始创建测试数据,这样您就不会受制于您操作的某些现有数据设置。我认为 H2 很受欢迎。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      • 2019-09-27
      • 2011-03-14
      相关资源
      最近更新 更多