spring整合TestNG【spring和testng的整合】
專案中用到了testNG作為單元測試工具,至於testNG對比junit有啥好處不太清楚,至少從程式設計師寫testcase來說似乎和junit 4.x並沒有太大的區別。但是據說和一些測試工具整合的時候比較方便。ok,這不是重點。
Spring專門為Junit testNG提供了一套測試整合介面類——AbstractSpringContextTests類,對於testNG就是其子類:AbstractTestNGSpringContextTests。Spring和testNG整合後,進行單元測試的時只要test類繼承該類,就可以方便的使用spring注入。實現了spring和testNG的無縫整合,我們可以像寫普通類那樣測試被spring IoC容器所管理的類(否則我們必須在開始執行單元測試前重新載入Spring beanfactory,再用getBean("xxx")的方式獲取IoC容器中類。)
除此以外,對測試類spring beanfactory快取,使得多個測試類之間可以共享同一個的beanfactory例項,從而減少了重複生成beanfactory,提高了執行效率。
繼承該類的測試用例在spring管理的事務中進行,測試完後對資料庫的記錄不會造成任何影響。你對資料庫進行一些操作後,它會自動把資料庫回滾,這樣就保證了你的測試對於環境沒有任何影響
整合程式碼如下
- @ContextConfiguration
- (locations={"applicationContext.xml"})
-
publicclass TestUser extends AbstractTestNGSpringContextTests{
- @Autowired
- UserService userService;
- @Test
- publicvoid test_save_user(){
- User user = new User();
- user .setPassword("123456");
- user .setSex(1);
- user .setPartyName("test1");
- user .setEmail("[email protected]");
- userService.save(user);
- }
- @Test
-
publicvoid test_inject_factory(){
- Assert.assertNotNull(userService);
- }
- }
其中最重要的就是@ContextConfiguration。預設的從classpath目錄下讀取applicationContext.xml作為spring的啟動配置檔案(對應ClassPathXmlApplicationContext?)。
等同於(locations={"classpath:applicationContext1.xml"})。因此必須確保spring的配置檔案在classpath中。
如果有多個spring配置,用逗號進行分隔(locations={"applicationContext.xml", "/applicationContex_transaction.xml"})
另外一種採用filepath定位spring配置檔案(對應FileSystemXmlApplicationContext?).
比如在web專案中將相應的配置檔案放到WEB-INF目錄下"file:WebRoot/WEB-INF/config/applicationContext.xml",或者可以指定絕對路徑。
實際問題:
專案中,將配置放在了web-inf/config/目錄下對應的xml檔案中,但是又在xml檔案中對web-inf/config/properties/目錄下的幾個包括log4j.properties在內的幾個properties檔案進行了引用。
如果使用file方式指定spring配置檔案位置的話,當載入到xml檔案中引用的property檔案時就會報檔案找不到。因為僅僅指定採用file方式讀取xml檔案,對於對於property檔案仍然會去classpath搜尋。
解決方法
將Webroot加入到專案的classpath目錄中。
或者更好的做法是指定在執行testNG測試時,將webroot加入到classpath中。
Eclipse中 run/run configuration選單中進行配置
轉載地址:http://blog.csdn.net/blackchoc/article/details/5711860
TestNG官方地址:
1、首頁:http://testng.org/doc/index.html
2、文件:http://testng.org/doc/documentation-main.html
3、maven倉庫地址:http://testng.org/doc/maven.html
< dependency > |
< groupId >org.testng</ groupId > |
< artifactId >testng</ artifactId > |
< version >6.1.1</ version > |
< scope >test</ scope > |
</ dependency > |
4、eclipse外掛:http://testng.org/doc/eclipse.html
相關推薦
spring整合TestNG【spring和testng的整合】
專案中用到了testNG作為單元測試工具,至於testNG對比junit有啥好處不太清楚,至少從程式設計師寫testcase來說似乎和junit 4.x並沒有太大的區別。但是據說和一些測試工具整合的時候比較方便。ok,這不是重點。 Spring專門為Junit test
Spring Boot學習之Logback和Log4j2整合與日誌發展史
一、簡介 Java知名的日誌有很多,比如:JUL、Log4j、JCL、SLF4J、Logback、Log4j2,那麼這些日誌框架之間有著怎樣的關係?誕生的原因又是解決什麼問題?下面一起來看。 1.1 JUL Java有自己的日誌框架JUL(Java Util Logging)在java.
介面自動化測試TestNG 基本語法和TestNG工程建立 (2)
1.常用引數註解: 描述 @BeforeSuite 註解的方法將只執行一次,執行所有測試前此套件中。 @AfterSuite 註解的方法將只執行一次此套件中的所有測試都執行之後。
恒成立、能成立和恰成立三類命題賞析【初級和中級輔導】
反思 給定 image ongl 至少 取值 有一個 分享 最大值 恒成立、能成立和恰成立三類命題賞析 恒成立、能成立和恰成立三類命題是高三數學中比較常見的高頻命題,尤其是恒成立、能成立命題,讓許多學生感到頭疼不已。考查的頻次多,難度大,所以深入思考和總結這類命題的規律顯
數列的前n項和的求法【中級和高階輔導】
數列的前n項和的求法 ★ 數列求和第一步: 欲求和,先認清數列的通項公式,以\(a_n\)為“抓手”。 ★ 數列求和第二步:認清結構,合理選擇恰當的方法 法1、公式求和法;等差、等比型別 法2、分組求和法 法3、並項求和法 法4、裂項求和法(難點) 法5、錯位相減法(
【演算法和資料結構】平衡查詢樹之B樹
以B-樹的效能總是等價於二分查詢(與M值無關),也就沒有B樹平衡的問題;由於M/2的限制,在插入結點時,如果結點已滿,需要將結點分裂為兩個各佔M/2的結點;刪除結點時,需將兩個不足M/2的兄弟結點合併。 下面簡單說明分裂: 下面對B-樹進行實現 #pragma once //3階B樹 tem
【原型和原型鏈】類和繼承
一、定義“類” ——建構函式 我們知道,JavaScript中沒有類的概念,我們只是通過函式來模仿類的行為,我們將它稱之為建構函式 建構函式分兩類,原生建構函式和自定義建構函式。原生建構函式像Array、Object,是執行環境自動提供的;
【原型和原型鏈】什麼是原型和原型鏈
一、原型 ①所有引用型別都有一個__proto__(隱式原型)屬性,屬性值是一個普通的物件 ②所有函式都有一個prototype(原型)屬性,屬性值是一個普通的物件 ③所有引用型別的
【堆疊和棧溢位】MSP430 陣列填充越界引起的棧溢位 導致程式跑飛
1、棧區(stack)— 由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。 2、堆區(heap) — 一般由程式設計師分配釋放, 若程式設計師不釋放,程式結束時可能由OS回收 。注意它與資料結構中的堆是兩回事,分配方式倒是類似於連結串列。 //main
JavaWeb(一)【Tomcat和Servlet入門】
一、Tomcat1.使用Tomcat7.0:在8.0以後的版本,對編碼作了優化,較少出現亂碼問題。使用7.0是為了學習如何處理亂碼問題。2.解壓即可使用。首先要設定環境變數JAVA_HOME.不然會出現Tomcat啟動一閃而過,導致開啟失敗。startup.bat:啟動伺服器
pyspark之MLlib學習【載入和轉換資料】(1)
pyspark系列文章是本人根據《PySpark實戰指南》學習pyspark中學習筆記,這本書是一本譯文,有些地方感覺有點小問題,不過在本人的這些筆記中都是親自測試跑通後的小例子。僅作參考和學習。 1.概述 MLlib概括了單個核心機器學習功能: 資料準備:特徵提取、變換
ABP官方文件(四十二)【CSRF和XSRF保護】
6.9 CSRF和XSRF保護 6.9.1 簡介 Cross-Site Request Forgery (CSRF) 跨站請求偽造是一種攻擊,發生在具有惡意的網站,email,blog,即時訊息,或者程式導致使用者的web瀏覽器在一個受信用的網站去執行了
【UML和UML Tools】 UML和模式應用
讀書筆記: 《UML和模式應用》 Craig Larman著 機械工作出版社 系統設計的關鍵問題: 如何為物件分配職責? 物件之間應該如何協作? 什麼樣的類應該做什麼樣的事情? 分析和設計: 分析:強調的是對問題和需求的調查研究,而不是解決方案。 (應該回答如下問
Tomcat調優總結【記憶體和執行緒】
本文,主要講的是tomcat記憶體和執行緒方面的優化 1.調整tomcat的記憶體 Java 的記憶體模型分為:Young,年輕代(易被 GC)。Young 區被劃分為三部分,Ede
【LruCache和DiskLruCache結合】圖片快取機制
本文是對網路上幾篇文章的綜合, 第一部分,使用LruCache和DiskLruCache: 新建一個Android專案,起名叫PhotoWallDemo,這裡我使用的是Android 4.0的API。然後新建一個libcore.io包,並將DiskLruCache.j
轉載 解密藍芽mesh系列 | 第一篇 【關於拓撲】【mesh網路的動機】【以訊息為中心的通訊】【訊息和裝置狀態】
藍芽技術聯盟EMEA技術專案經理Martin Woolley小碼哥前言藍芽技術是享譽全球的品牌之一,也是全世界應用最為普遍的無線通訊技術之一。從2000年到現在,藍芽技術已經廣泛應用於數十億臺裝置。就2016年而言,製造商的藍芽裝置出貨量更是超過30億臺。藍芽的創新步伐從未停止。自面世以來,每一次改進都系統嚴
【git】【切換分支】【ide 和 命令列】
命令列操作 檢視當前分支:git branch 檢視所有分支git branch -a 切換分支:git checkout newbranch idea 先右鍵點選專案裡任意一個檔案,如圖選擇Git-Repository-branchs 會彈
【curl和wget命令】模擬HTTP請求
在實際開發中,特別是後端開發程式設計師,測試呼叫介面的時候,經常可能需要模擬一下HTTP請求。 在這裡主要介紹linux系統如何模擬Http的get或post請求。 一、get請求: 1、使用curl命令: curl “http://www.baidu.com”
spring-boot 整合junit測試類 和 spring-boot整合整合testng
一、spring-boot 整合junit測試類 1.引入junit依賴 <!-- springboot junit依賴 --> <dependency> <groupId>org.springframework.boot
【Spring 系列】1. 搭建和配置Spring與jdbc整合的環境
配置資料來源 <!-- 配置結點,可以使用佔位符 --> <context:property-placeholder location=“classpath:jdbc.properties”/> <bean id="dataSource" class="org.apach