Spring 整合測試

2021-08-22 14:01:42 字數 1810 閱讀 5543

spring 中的包 spring-mock.jar 為整合測試提供了一流的支援。所有相關的api在包 org.springframework.test 中,它們不依賴於任何應用伺服器或者其他部署環境。

test包裡的各種抽象類提供了如下的功能:

test包對載入的context提供快取,快取功能是通過 abstractdependencyinjectionspringcontexttests 類的乙個方法(如下)實現的,此方法提供contexts xml的位置,且實現這個方法的類必須提供乙個包含xml配置檔案位置陣列。預設情況下,一旦載入後,這些配置將被所有的測試案例重用。

protected

abstract string

getconfiglocations();

abstractdependencyinjectionspringcontexttests 類將從getconfiglocations()方法指定的配置檔案中自動查詢你要測試的類, 並通過setter注入該類的例項。

簡單例子

public class hibernatetitledaotests extends

abstractdependencyinjectionspringcontexttests

public void testloadtitle() throws exception

//指定spring配置檔案載入這個fixture

protected string

getconfiglocations() ;}}

getconfiglocations() 使用的是

如果你的測試案例不使用依賴注入,只要不定義任何setters方法即可; 或者你可以繼承 org.springframework.test.abstractspringcontexttests 類,它只包括用來載入spring context的便利方法,並且在測試fixture中不進行依賴注入。

如果你確實想在測試時修改資料,可以用這個類的

setcomplete() 方法,這將提交而不是回滾事務。另外,

endtransaction() 方法可以在測試結束前中止事務。

abstractdependencyinjectionspringcontexttests 類提供了兩個保護屬性性例項變數:

jdbctemplate : 對確定資料狀態的查詢很有用。

spring的petclinic例項展示了這些測試超類的用法

public abstract class abstractclinictests extends

abstracttransactionaldatasourcespringcontexttests

public void testgetvets()

jdbctemplate 變數用於驗證被測試的**是否正確。jdbctemplate 讓測試更嚴密,且減少了對測試資料的依賴。例如,可以在不中止測試的情況下在資料庫裡增加額外的資料行。

petclinic應用支援四種資料訪問技術--jdbc、hibernate、toplink和jpa ,因此 abstractclinictests 類不指定context位置,這個操作在子類中實現:

例如,用hibernate實現的petclinic測試包含如下方法:

public class hibernateclinictests extends abstractclinictests ;}}

整合測試比單元測試更依賴於測試環境,它是測試的乙個補充,而不是代替單元測試的。這種依賴主要指完整資料模型的資料庫。也可以通過dbunit或者資料庫工具來匯入測試資料。

Spring整合junit測試

spring提供spring test 3.2.0.release.jar 可以整合junit 優勢 可以簡化測試 不需要手動建立上下文 目標 測試spring的bean的某些功能 runwith springjunit4classrunner.class 固定寫法,junit整合spring的測試...

Spring整合Junit測試

spring整合junit是為了解決 重複和配置檔案多次載入的問題 解決的方法很簡單 第一步使用註解告訴spring配置檔案在哪 第二步使用註解讓spring載入配置檔案 要匯入的包有spring的aop和test,junit的單元測試包 contextconfiguration value cla...

Spring之junit測試整合

spring提供spring test 5.2.1.release.jar 可以整合junit。優勢 可以簡化測試 不需要手動建立上下文,即手動建立spring容器 1.匯入jar包 2.建立包com.igeek.test,建立類springtest 通過 runwith註解,使用junit整合sp...