[英]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.