簡體   English   中英

在JUnit測試案例中觸發Spring批處理作業

[英]Triggering Spring batch jobs in JUnit test cases

的背景 :

我目前正在開發一個使用Spring Batch讀取一組文件並將文件內容緩存在內存中的應用程序。 然后,緩存的數據由業務邏輯層使用,該業務邏輯層被分為不同的類,每個類都通過使用來自緩存的數據來執行特定的業務功能。

要求

我被分配了對業務邏輯層進行單元測試的任務。 由於業務邏輯層假設數據將在緩存中可用,因此我需要一種在單元測試中觸發Spring批處理作業的方法,然后才能測試業務邏輯類。

問題:

我正在考慮編寫一個父JUnit類,該類將由測試業務邏輯的所有JUnit類擴展。 這個父JUnit類將觸發Spring批處理作業以在setUp方法中加載緩存。

  1. 在父JUnit類中觸發Spring批處理作業的最佳方法是什么?

  2. 我的父src / test / java文件夾中的JUnit類可以訪問src / main / resources / META-INF文件夾中的Spring作業上下文文件嗎?

注意,目標是測試將使用Spring批處理完成的工作的類,而不是測試Spring批處理作業本身。

要回答您的特定問題:

  1. 為了從JUnit測試中啟動Spring Batch作業,我們提供了JobLauncherTestUtils類。 可以在測試上下文中配置該類以啟動與其關聯的作業,然后將其連接到單元測試中。 您可以在此處的Spring Batch Samples模塊中查看特定示例: https : //github.com/spring-projects/spring-batch/tree/master/spring-batch-samples

  2. 我假設您正在使用Maven,在這種情況下,測試類應該可以看到常規類所做的所有事情,因此可以。

附帶說明一下,如果您要對業務代碼進行單元測試,則可能要考慮不運行批處理作業並單獨測試業務代碼。 如果目標是對整個系統進行集成測試,那么您的方法很有意義。

暫無
暫無

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

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