簡體   English   中英

Spring集成測試方法?

[英]Spring Integration Testing methodologies?

我正在開發沒有單元測試的已建立應用程序。 我想開始為此應用程序編寫測試用例。 Bean Mocking不存在,需要花費我大量時間進行設置。 因此,為了快速起步,並且由於我們根本沒有任何測試用例,我正在考慮設置集成測試,一旦對所有測試覆蓋范圍感到滿意,我將慢慢着手將其轉換為真實的單元。測試(通過模擬)。 由於應用程序很大,並且加載彈簧容器需要花費大量時間,因此我想對增加周轉時間提出一些建議。 我可以想到幾種方法。

  • 一直運行一些輕量級的spring容器,並對該輕量級容器運行所有的單元測試用例。(或訪問其applicationContext)

  • 針對實際服務器運行測試用例。(從IDE遠程運行Junit)

  • 利用Spring Junit配置,並以某種方式防止為每個測試案例重新加載上下文。

我確信這個用例會在之前提出,任何見解都將受到高度贊賞。

上下文緩存是Spring的內置功能,因此,如果您的測試用例使用相同的配置文件(或文件集),Spring將不會重復重新加載上下文。 查看參考文檔的“ 上下文管理和緩存”部分:

默認情況下,加載后,已配置的ApplicationContext將重新用於每個測試。 因此,每個測試套件僅產生一次安裝成本,並且隨后的測試執行要快得多。 在這種情況下,術語“測試套件”表示所有測試都在同一JVM中運行。

在Spring中運行測試時,可以將測試指向要運行測試的應用程序上下文配置。 因此,您不必使用生產應用程序上下文,可以進行特殊的配置進行測試。 我個人有一個“集成測試應用程序上下文”和一個“單元測試應用程序上下文”。 但是您可以進一步分解。

進行此設置的最簡單方法是在超類上設置應用程序上下文,並使每個測試都從其中一個擴展。

例如。 設定:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:BaseSpringIntegrationTestContext.xml")
public abstract class BaseSpringIntegrationTest {

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:BaseSpringUnitTestContext.xml")
public abstract class BaseSpringUnitTest {

然后進行測試

public class BlahTest extends BaseSpringUnitTest  {

下一步將是弄清楚如何加快Spring環境的啟動。 對於某些測試,某些大型組件可能根本不需要加載。

暫無
暫無

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

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