模拟@UpdateTimestamp休眠注释



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

是否可以在不嘲笑System.currentTimeMillis()的情况下模拟@UpdateTimestamp以返回特定日期?

注意: 我使用的测试框架是JUnit & Mockito

我会感到惊讶,如果有模拟注释,那不是它的范围。您可以在测试中使用休眠后加载拦截器来更新数据。

但是,如果您想获得更高的可靠性,则可以使用dbunit并在每次测试之前创建适当的数据库设置,因此无需休眠操作。

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

最新更新