亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何在 Zookeepr 中模擬獲取鎖的 void 方法,并且我們還可以驗證鎖

如何在 Zookeepr 中模擬獲取鎖的 void 方法,并且我們還可以驗證鎖

GCT1015 2023-12-30 15:51:55
我必須為使用 Zookeeper 獲取鎖的方法創建一個單元測試用例,并使用 CompletableFuture 處理數據以下是我迄今為止嘗試過的測試用例:import org.junit.Test;import org.junit.runner.RunWith;import org.mockito.InjectMocks;import org.mockito.Mock;import org.mockito.Mockito;import org.mockito.MockitoAnnotations;import org.mockito.junit.MockitoJUnitRunner;import java.util.concurrent.ExecutionException;    @RunWith(MockitoJUnitRunner.class)public class SampleJobTest {    @InjectMocks    private SampleJob sampleJob = new SampleJob();    @Mock    private ConfigurationsIntegrationService configurationsIntegrationService;    @Mock    private MessageService messageService;    @Mock    private LockingExecutorProcessor<ConfigurationsIntegrationModel> lockingExecutorProcessor;    @Test    public void testSampleJob() throws ExecutionException, InterruptedException {        Mockito.doCallRealMethod().when(lockingExecutorProcessor).process(Mockito.any(), Mockito.any(), Mockito.any());        Mockito.doCallRealMethod().when(configurationsIntegrationService).getRecords(Mockito.any());        Mockito.doCallRealMethod().when(messageService).getMessagesList(Mockito.any());        sampleJob.executeJob();    }}當我調試代碼時,它會在 LockingExecutorProcessor 的 CompletableFuture.runAsync 行處中斷并拋出空指針錯誤;原因是distributedLockProcessor對象為null;我們如何模擬它以及如何連接到測試 Zookeeper 服務器而不是原始服務器以確保鎖定正常工作
查看完整描述

1 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

這個做完了?,F在測試用例運行良好。我使用了 curator-test 依賴項,并使用反射來模擬私有對象。



查看完整回答
反對 回復 2023-12-30
  • 1 回答
  • 0 關注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號