第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在測試類中禁用@CreationTimestamp

在測試類中禁用@CreationTimestamp

汪汪一只貓 2024-01-17 16:35:24
所以我使用 Hibernate 的注釋@CreationTimestamp和@UpdateTimestamp. 它工作正常,但我在單元測試時遇到這種情況,我需要在特定日期創(chuàng)建對象。我認(rèn)為不可能停用此注釋,因此我想到的第一件事就是刪除它們并執(zhí)行以下操作:@PrePersistpublic void prePersist() {    if (createdDate == null) {        createdDate = new Date();    }}我不喜歡這種方式,因?yàn)槲冶仨殐H為一個測試用例重構(gòu)我的實(shí)體。我認(rèn)為更好的另一個解決方案是使用我需要的數(shù)據(jù)創(chuàng)建一個 sql 文件,并在運(yùn)行測試之前使用 Spring 執(zhí)行它。您認(rèn)為做到這一點(diǎn)的最佳方法是什么?
查看完整描述

3 回答

?
慕妹3146593

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個贊

我在測試中遇到了同樣的問題,我想出的最佳解決方案是: Mock static method in Clock.systemUTC so it will return Clock.fixed()


try (MockedStatic<Clock> utilities = Mockito.mockStatic(Clock.class)) {

                utilities.when(Clock::systemUTC)

                        .thenReturn(Clock.fixed(Instant.parse("2018-08-22T10:00:00Z"), ZoneOffset.UTC));

                System.out.println(Instant.now()) //here perform actions in past

            }

    System.out.println(Instant.now()) // here perform in current time


查看完整回答
反對 回復(fù) 2024-01-17
?
喵喔喔

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個贊

就我而言,配備的屬性的數(shù)據(jù)類型@UpdateTimestamp是LocalDateTime. 我是這樣解決的:


ShiftLog shiftLog1 = ShiftLog.builder().build();

ShiftLog shiftLog2 = ShiftLog.builder().build();

ShiftLog shiftLog3 = ShiftLog.builder().build();

LocalDateTime thePast = LocalDateTime.of(1979, 4, 3, 6, 45, 31);

try (MockedStatic<LocalDateTime> utilities = Mockito.mockStatic(LocalDateTime.class)) {

   utilities.when(() -> LocalDateTime.now(ArgumentMatchers.any(Clock.class))).thenReturn(thePast);

   repository.save(shiftLog1);

   repository.save(shiftLog2);

}

// Now the @UpdateTimestamp is untouched again.

repository.save(shiftLog3);


查看完整回答
反對 回復(fù) 2024-01-17
?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個贊

不要僅僅為了測試用例而更改生產(chǎn)代碼。只需修改測試對象上的創(chuàng)建日期屬性?



查看完整回答
反對 回復(fù) 2024-01-17
  • 3 回答
  • 0 關(guān)注
  • 289 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號