1. 程式人生 > >spring整合TestNG【spring和testng的整合】

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管理的事務中進行,測試完後對資料庫的記錄不會造成任何影響。你對資料庫進行一些操作後,它會自動把資料庫回滾,這樣就保證了你的測試對於環境沒有任何影響

整合程式碼如下

  1. @ContextConfiguration
  2. (locations={"applicationContext.xml"})  
  3. publicclass TestUser extends AbstractTestNGSpringContextTests{  
  4.  @Autowired
  5.  UserService userService;  
  6.  @Test
  7.  publicvoid test_save_user(){  
  8.   User user = new User();  
  9.   user .setPassword("123456");  
  10.   user .setSex(1);  
  11.   user .setPartyName("test1");  
  12.   user .setEmail("[email protected]");  
  13.   userService.save(user);  
  14.  }  
  15.  @Test
  16.  publicvoid test_inject_factory(){  
  17.   Assert.assertNotNull(userService);  
  18.  }  
  19. }  

其中最重要的就是@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選單中進行配置

  MyEclipse配置

 轉載地址: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整合TestNGspringtestng整合

專案中用到了testNG作為單元測試工具,至於testNG對比junit有啥好處不太清楚,至少從程式設計師寫testcase來說似乎和junit 4.x並沒有太大的區別。但是據說和一些測試工具整合的時候比較方便。ok,這不是重點。 Spring專門為Junit test

Spring Boot學習之LogbackLog4j2整合與日誌發展史

一、簡介 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(一)TomcatServlet入門

一、Tomcat1.使用Tomcat7.0:在8.0以後的版本,對編碼作了優化,較少出現亂碼問題。使用7.0是為了學習如何處理亂碼問題。2.解壓即可使用。首先要設定環境變數JAVA_HOME.不然會出現Tomcat啟動一閃而過,導致開啟失敗。startup.bat:啟動伺服器

pyspark之MLlib學習載入轉換資料(1)

pyspark系列文章是本人根據《PySpark實戰指南》學習pyspark中學習筆記,這本書是一本譯文,有些地方感覺有點小問題,不過在本人的這些筆記中都是親自測試跑通後的小例子。僅作參考和學習。 1.概述 MLlib概括了單個核心機器學習功能: 資料準備:特徵提取、變換

ABP官方文件(四十二)CSRFXSRF保護

6.9 CSRF和XSRF保護 6.9.1 簡介 Cross-Site Request Forgery (CSRF) 跨站請求偽造是一種攻擊,發生在具有惡意的網站,email,blog,即時訊息,或者程式導致使用者的web瀏覽器在一個受信用的網站去執行了

UMLUML Tools UML模式應用

讀書筆記: 《UML和模式應用》 Craig Larman著  機械工作出版社 系統設計的關鍵問題: 如何為物件分配職責? 物件之間應該如何協作? 什麼樣的類應該做什麼樣的事情?  分析和設計: 分析:強調的是對問題和需求的調查研究,而不是解決方案。  (應該回答如下問

Tomcat調優總結記憶體執行緒

本文,主要講的是tomcat記憶體和執行緒方面的優化 1.調整tomcat的記憶體 Java 的記憶體模型分為:Young,年輕代(易被 GC)。Young 區被劃分為三部分,Ede

LruCacheDiskLruCache結合圖片快取機制

本文是對網路上幾篇文章的綜合,   第一部分,使用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 會彈

curlwget命令模擬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