簡體   English   中英

Spring Batch步驟集成測試

[英]Spring Batch Step Integration Testing

我正在尋找有關測試Spring批處理步驟和步驟執行的一些一般性意見和建議。

我的基本步驟是從api讀取數據,處理成一個實體對象,然后寫入數據庫。 我已經測試了成功的路徑,該步驟成功完成。 我現在想做的是在處理器階段丟失數據時測試異常處理。 我可以單獨測試處理器類,但是我寧願測試整個步驟,以確保在步驟/作業級別正確反映出流程故障。

我已經閱讀了春季批測試指南,如果說實話,我會有點不知所措。 是否可以使用StepScopeTestUtils.doInStepScope或更新StepExecution來測試這種情況? 理想情況下,我會強迫讀者在處理器啟動之前返回錯誤數據。

任何建議將不勝感激。

最佳方法取決於測試范圍。 在這里,請仔細閱讀以下內容,我假設您正在使用Spring IT,設置Spring上下文並使用JobLauncherTestUtils啟動作業或步驟。

我認為最簡單的方法是用觸發錯誤情況的模擬替換您的一個bean。 使用Mockito,可以通過在測試配置中添加類似內容來完成。

@Bean
public ReaderDataRepository dataApi(){
    return mock(ReaderDataRepository.class);
}

然后,此bean覆蓋實際的實現。 然后,您可以在測試設置中非常明確地配置此模擬。

@Autowired
private ReaderDataRepository mockedRepository;

@Before
public void setUp() {
    when(mockedRepository.getData()).thenReturn(faultyData())
}

這涉及對Spring“魔術”的很少操作,並且非常明確地從測試中定義了錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM