国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

SpringJunit4 進(jìn)行單元測試(實(shí)例篇--緊接上一章)

2019-11-14 21:42:10
字體:
供稿:網(wǎng)友
SPRingJunit4 進(jìn)行單元測試(實(shí)例篇--緊接上一章)

前言:

  在做WEB項(xiàng)目時,我們寫好了一個Dao和Service后,接下來就是要進(jìn)行單元測試,測試的時候還要等到Spring容器全部加載完畢后才能進(jìn)行,然后通過拿到applicationContext對象來gerBean()方法進(jìn)行測試,或者更笨點(diǎn)的就是寫一個控制器,在瀏覽器敲入地址進(jìn)行deBug跟蹤測試,這樣不僅效率低,而且收效甚微。

  本章來講解spring融合Junit4進(jìn)行單元測試。

  本章的測試源目錄和包是緊隨上一章節(jié)的源代碼。點(diǎn)我查看上一章節(jié)


準(zhǔn)備工作:

  •  jar包支持(上一章節(jié)代碼里面已給出)
  • 測試的源代碼和包結(jié)構(gòu)(同上)
  • 注意:測試類test包路徑最好位于src根目錄下,編譯后為calsses文件夾下,方便其他路徑的書寫

實(shí)例代碼演示:

****************復(fù)制該類至上一章節(jié)test包下即可************注釋部分我盡可能詳細(xì)講解****************

UserServiceTest

package test;import java.util.List;import javax.annotation.Resource;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemxmlApplicationContext;import org.springframework.data.domain.Page;import org.springframework.data.domain.PageRequest;import org.springframework.data.domain.Sort.Direction;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import org.springframework.test.context.transaction.TransactionConfiguration;import org.springframework.transaction.annotation.Transactional;import com.spring.jpa.user.User;import com.spring.jpa.user.UserService;/** 聲明用的是Spring的測試類 **/@RunWith(SpringJUnit4ClassRunner.class)/** 聲明spring主配置文件位置,注意:以當(dāng)前測試類的位置為基準(zhǔn),有多個配置文件以字符數(shù)組聲明 **/@ContextConfiguration(locations={"../spring-config/spring-jpa.xml"})/** 聲明使用事務(wù),不聲明spring會使用默認(rèn)事務(wù)管理 **/@Transactional/** 聲明事務(wù)回滾,要不測試一個方法數(shù)據(jù)就沒有了豈不很杯具,注意:插入數(shù)據(jù)時可注掉,不讓事務(wù)回滾 **/@TransactionConfiguration(transactionManager="transactionManager",defaultRollback=true)public class UserServiceTest {    @Resource    private UserService userService;        @Test // 新增(來個20條數(shù)據(jù)) 注意新增的時候先把事務(wù)注掉,要不會回滾操作    public void testSaveUser() {        for(int i=0; i<20; i++){            User user = new User();            user.setUserName("system");            user.setPassWord(i+"system");            userService.saveUser(user);        }    }        @Test    // 刪除  有事務(wù)回滾,并不會真的刪除    public void testDeleteUser() {        userService.deleteUser(27L);    }        @Test    // 查詢所有    public void testFindAllUser() {        List<User> users = userService.findAllUsers();        System.out.println(users.size());    }        @Test    // 查詢分頁對象    public void testFindAllUserByPage() {        /**         *  創(chuàng)建一個分頁對象   (注意:0代表的是第一頁,5代表每頁的大小,后兩個參數(shù)不寫即為默認(rèn)排序)         *  Direction:為一個枚舉類,定義了DESC和ASC排序順序         *  id:結(jié)果集根據(jù)id來進(jìn)行DESC降序排序         *  想自己實(shí)現(xiàn)的話,最好繼承他這個類,來定義一些個性的方法         */        PageRequest request = new PageRequest(1, 4, Direction.DESC, "id");                Page<User> users = userService.findAllUserByPage(request);        // 打印分頁詳情        System.out.println("查詢結(jié)果:共"+users.getTotalElements()+"條數(shù)據(jù),每頁顯示"+users.getSize()+"條,共"+users.getTotalPages()+"頁,當(dāng)前第"+(users.getNumber()+1)+"頁!");        // 打印結(jié)果集的內(nèi)容        System.out.println(users.getContent());    }        // main 用于查看spring所有bean,以此可以檢測spring容器是否正確初始化    public static void main(String[] args) {        // 我這里使用的是絕對路徑,請根據(jù)你項(xiàng)目的路徑來配置(相對路徑挖不出來-OUT了)        String []  path = {"E:/moviework/springJpa/src/spring-config/spring-jpa.xml"};        ApplicationContext ac = new FileSystemXmlApplicationContext(path);         String[] beans = ac.getBeanDefinitionNames();         for(String s : beans) {             System.out.println(s);    // 打印bean的name         }    }}

  測試testFindAllUserByPage()方法控制臺輸出sql語句和信息:


  完事,就是這么簡單,和普通java類的測試多的只是注解的東西。原理還是一樣的,并且它支持事務(wù)的回滾,不用擔(dān)心在測試的時候?qū)?shù)據(jù)進(jìn)行破壞。只有用了你才能體會原來Spring 框架的 WEB項(xiàng)目測試也可以這么的簡潔。

  數(shù)據(jù)都是基于上一章節(jié)來的,本章節(jié)不再貼出,項(xiàng)目打包的下載地址也在上一章節(jié)。點(diǎn)我前往上一章節(jié)

總結(jié):

  •   平時在編寫test類的時候,寫在src目錄下更方便閱讀和代碼的編寫
  • 遵守測試規(guī)范,測試類方法名為:test + 原方法名首字母大寫
  • 注意@ContextConfiguration注解路徑的引用

                          寫作不易,難免有疏漏和錯誤,還請慷慨指正,覺得有幫助幫忙推薦哦

ps:歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明出處:http://m.survivalescaperooms.com/liuyitian/p/4063033.html


                                         每天多學(xué)一點(diǎn)點(diǎn) 代碼少敲一點(diǎn)點(diǎn)


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新乐市| 榕江县| 巨鹿县| 凤山县| 施甸县| 冷水江市| 竹北市| 雅安市| 丰台区| 青阳县| 林周县| 黎城县| 布拖县| 黔西县| 双桥区| 山东省| 静安区| 香港| 常州市| 北安市| 昌宁县| 乌鲁木齐县| 遂川县| 邢台县| 普宁市| 三原县| 阿拉尔市| 扎兰屯市| 灵武市| 斗六市| 洛浦县| 达拉特旗| 行唐县| 钦州市| 宁都县| 天气| 宁阳县| 榆中县| 翼城县| 舒城县| 中方县|