亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
Spring Test+JUnit整合使用
作者:網絡轉載 發布時間:[ 2017/1/10 9:44:36 ] 推薦標簽:單元測試 Junit

  在做spring相關測試時比較麻煩,如果只用JUnit測試,需要沒測有初始化一下applicationContext,效率比較底下,而且也有不足之處。具體見下文
  1. 導致多次Spring容器初始化問題
  根據JUnit測試方法的調用流程,每執行一個測試方法都會創建一個測試用例的實例并調用setUp()方法。由于一般情況下,我們在setUp()方法 中初始化Spring容器,這意  味著如果測試用例有多少個測試方法,Spring容器會被重復初始化多次。雖然初始化Spring容器的速度并不會太 慢,但由于可能會在Spring容器初始化時執行加載Hibernate  映射文件等耗時的操作,如果每執行一個測試方法都必須重復初始化Spring容 器,則對測試性能的影響是不容忽視的;
  使用Spring測試套件,Spring容器只會初始化一次!
  2. 需要使用硬編碼方式手工獲取Bean
  在測試用例類中我們需要通過ctx.getBean()方法從Spirng容器中獲取需要測試的目標Bean,并且還要進行強制類型轉換的造型操作。這種乏味的操作迷漫在測試用例的  代碼中,讓人覺得煩瑣不堪;
  使用Spring測試套件,測試用例類中的屬性會被自動填充Spring容器的對應Bean,無須在手工設置Bean!
  3. 數據庫現場容易遭受破壞
  測試方法對數據庫的更改操作會持久化到數據庫中。雖然是針對開發數據庫進行操作,但如果數據操作的影響是持久的,可能會影響到后面的測試行為。舉個例子, 用戶在  測試方法中插入一條ID為1的User記錄,第一次運行不會有問題,第二次運行時,會因為主鍵沖突而導致測試用例失敗。所以應該既能夠完成功能邏 輯檢查,又能夠在測試  完成后恢復現場,不會留下“后遺癥”;
  使用Spring測試套件,Spring會在你驗證后,自動回滾對數據庫的操作,保證數據庫的現場不被破壞,因此重復測試不會發生問題!
  4. 不方便對數據操作正確性進行檢查
  假如我們向登錄日志表插入了一條成功登錄日志,可是我們卻沒有對t_login_log表中是否確實添加了一條記錄進行檢查。一般情況下,我們可能是打開 數據庫,肉眼觀察  是否插入了相應的記錄,但這嚴重違背了自動測試的原則。試想在測試包括成千上萬個數據操作行為的程序時,如何用肉眼進行檢查?
  只要你繼承Spring的測試套件的用例類,你可以通過jdbcTemplate在同一事務中訪問數據庫,查詢數據的變化,驗證操作的正確性!
  下面筆者給大家介紹具體實現過程(基于maven項目):
  在maven的pom.xml中加入以下配置,其他spring相關配置省略。
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
  定義一個測試基類:
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)//表示整合JUnit4進行測試
@ContextConfiguration(locations={"classpath:spring-config.xml"})//加載spring配置文件
public class BaseJunit4Test {
}
  編寫具體的測試類,繼承剛剛的測試基類:
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import com.gk.spring.redis.daoImpl.UserDao;
import com.gk.spring.redis.entity.User;
public class SpringRedisTest extends BaseJunit4Test {
@Autowired
private UserDao userDao;
@Test
public void test01() {
User user = new User();
user.setId("1");
user.setName("qq");
userDao.add(user);
User user2 = userDao.get("1");
System.out.println(user2.getName());
}
}
  后,按照自己的測試要求進行測試即可。

軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 久久国产高清一区二区三区 | 国内精品小视频在线 | 深夜福利日韩 | 亚洲涩涩视频 | 成人短视频视频在线观看网站 | 欧美mv日韩mv国产mv网站 | 久久天天躁日日躁狠狠躁 | 日韩一级在线视频 | 香蕉视频黄色 | 按摩一级片 | 国产成人综合精品 | 成年人影院在线观看 | 欧美一区二区三区不卡 | 视频在线日韩 | 野外三级国产在线观看 | 中文一区二区在线观看 | 操榴视频| 在线视频日韩欧美 | 国产精品视频在这里有精品 | 欧美成人免费高清网站 | 婷婷六月久久综合丁香乐透 | rrr523亚洲国产片 | 天天操天天草 | 99成人国产精品视频 | 国内精品视频一区二区三区 | 亚州毛色毛片免费观看 | 好男人www社区资源免费观看 | 国产三级a三级三级三级 | 国产成人免费片在线视频观看 | 免费色视频在线观看 | 丝袜国产| 亚洲成av人影片在线观看 | 日韩毛片在线影视 | 国产精品自产拍视频观看 | 婷婷亚洲久悠悠色悠在线播放 | av福利网址网站 | 天天舔天天操 | 午夜片在线观看 | 免费看黄视频在线观看 | 国产性片在线 | 成人精品一区二区www |