spring整合junit4測試,
pom:
junitgroupid>
junitartifactid>
3.8.1version>
testscope>
dependency>
org.springframeworkgroupid>
spring-testartifactid>
4.3.8.releaseversion>
dependency>
org.springframeworkgroupid>
spring-webmvcartifactid>
4.3.8.releaseversion>
dependency>
com.fasterxml.jackson.coregroupid>
jackson-databindartifactid>
2.8.0version>
dependency>
org.hamcrestgroupid>
hamcrest-coreartifactid>
1.3version>
dependency>
org.hamcrestgroupid>
hamcrest-parentartifactid>
1.3version>
pomtype>
dependency>
org.springframeworkgroupid>
spring-context-supportartifactid>
4.3.2.releaseversion>
dependency>
org.springframeworkgroupid>
spring-txartifactid>
4.3.8.releaseversion>
dependency>
**如下:
import org.junit.test;
import org.junit.runner.runwith;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.beans.factory.annotation.qualifier;
import org.springframework.test.context.contextconfiguration;
import org.springframework.test.context.junit4.springjunit4classrunner;
import service.say;
/** *@author 01369526
* */
@runwith(springjunit4classrunner.class)
@contextconfiguration(locations="classpath*:spring/spring-context.xml")
public
class
firsttest
}
如果多個檔案:
@contextconfiguration(locations = )
public
inte***ce say
@service
public
class
saygoodbye
implements
say}
xml:
<?xml version="1.0" encoding="utf-8"?>
xmlns=""
xmlns:xsi=""
xmlns:context=""
xmlns:mvc=""
xsi:schemalocation="
/spring-beans.xsd
/spring-context.xsd
/spring-mvc.xsd">
base-package="controller" />
base-package="service" />
base-package="service.impl" />
beans>
對這個類解釋一下:
@runwith 注釋標籤是 junit 提供的,用來說明此測試類的執行者,這裡用了 springjunit4classrunner,這個類是乙個針對 junit 執行環境的自定義擴充套件,用來標準化在 spring 環境中 junit4.5 的測試用例,例如支援的注釋標籤的標準化
@contextconfiguration 注釋標籤是 spring test context 提供的,用來指定 spring 配置資訊的**,支援指定 xml 檔案位置或者 spring 配置類名,這裡我們指定 classpath 下的 classpath*:spring/spring-context.xml為配置檔案的位置
@autowired 體現了我們的測試類也是在 spring 的容器中管理的,他可以獲取容器的 bean 的注入,您不用自己手工獲取要測試的 bean 例項了
@transactiona
@transactionconfiguration(transactionmanager = "transactionmanager", defaultrollback = true)
@transactional 這個非常關鍵,如果不加入這個註解配置,事務控制就會完全失效!
這裡的事務關聯到配置檔案中的事務控制器(transactionmanager = 「transactionmanager」),同時//指定自動回滾(defaultrollback = true)。這樣做操作的資料才不會汙染資料庫! 如果有@transactional 注釋標籤是表明此測試類的事務啟用,這樣所有的測試方案都會自動的 rollback,即您不用自己清除自己所做的任何對資料庫的變更了。
Spring整合Junit4單元測試
spring整合junit單元測試有兩種方式,一種是引入spring test等相關包,另一種是直接使用junit。本文只介紹第二種方式,此方式的優點是不需要引入額外的spring test包,缺點是需要手動呼叫方法來獲得例項。import org.junit.after import org.ju...
Junit4整合spring 測試
廢話不多說,教程直接開始。1.加入依賴包 使用spring的測試框架需要加入以下依賴包 spring test spring框架中的test包 spring 相關其他依賴包 不再贅述了,就是context等包 2.建立測試源目錄和包 在此,推薦建立乙個和src平級的源檔案目錄,因為src內的類都是為...
Spring Test 整合 JUnit 4 使用
使用spring的測試框架需要加入以下依賴包 spring test spring框架中的test包 spring 相關其他依賴包 不再贅述了,就是context等包 在此,推薦建立乙個和src平級的源檔案目錄,因為src內的類都是為日後產品準備的,而此處的類僅僅用於測試。而包的名稱可以和src中的...