qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          單元測試示例--LinkDaoTest.java

          字體:        | 上一篇 下一篇 | 打印  | 我要投稿  | 推薦標簽: 測試技術 單元測試

          import java.sql.ResultSet;
          import java.util.List;
          import mockit.Mock;
          import mockit.MockUp;
          import org.junit.AfterClass;
          import org.junit.BeforeClass;
          import org.junit.Test;
          import com.geezn.exception.GeeznException;
          import com.runqian.mis2.util.DBAccess;
          import com.runqianapp.ngr.data.model.MyLink;
          import com.runqianapp.schedule.utils.PathUtils;
          /**
          * @author RAQ
          *
          */
          public class LinkDaoTest {
          private LinkDao linkDao = new LinkDao();
          /**
          * 配置文件項目路徑
          */
          public static final String setProjectPath = "E:/workplace_link/LinkManagerJava/WebRoot";
          /**
          * 初始化環境
          */
          @BeforeClass
          public static void init() throws Exception {
          mockPathUtils();
          }
          /**
          * @throws java.lang.Exception
          */
          @BeforeClass
          public static void setUpBeforeClass() throws Exception {
          }
          /**
          * @throws java.lang.Exception
          */
          @AfterClass
          public static void tearDownAfterClass() throws Exception {
          }
          /**
          測試刪除批量超鏈接方法
          Test method for {@link com.runqianapp.ngr.link.dao.LinkDao#removeLinks(java.lang.String)}.
          * @throws GeeznException
          */
          @Test
          public void testRemoveLinks() throws GeeznException {
          StringBuffer links = new StringBuffer();
          for(int i=21;i<1000;i++){
          links.append("/link").append(i).append(",");
          }
          links.deleteCharAt(links.length()-1);
          linkDao.removeLinks(links.toString());
          for(int j=20;j<1000;j++){
          MyLink linkCheck = linkDao.getMyLinkByShortLink("/link"+j);
          assertEquals("判斷刪除超鏈接是否成功","",linkCheck.getShortLink());  //逐一驗證超鏈接是否被成功刪除
          }
          }
          /**
          * 測試刪除單個超鏈接方法
          * Test method for {@link com.runqianapp.ngr.link.dao.LinkDao#removeLink(java.lang.String)}.
          * @throws Exception
          */
          @Test
          public void testRemoveLink() throws Exception {
          JunitParamUtil junitUtil = new JunitParamUtil(System.getProperty("user.dir") + "/test/com/runqianapp/ngr/link/dao/removelinkparams",1);
          // 從參數文件中獲取到的參數List
          List paramList = junitUtil.getParamList();
          for (int i = 0; i < paramList.size(); i++) {
          JunitParam param = (JunitParam) paramList.get(i);
          linkDao.removeLinks(param.getString(0));
          MyLink linkCheck = linkDao.getMyLinkByShortLink(param.getString(0));
          assertEquals("判斷刪除超鏈接是否成功","",linkCheck.getShortLink());
          }
          }
          /**
          * 測試獲取超鏈接方法
          * Test method for {@link com.runqianapp.ngr.link.dao.LinkDao#getMyLinkByShortLink(java.lang.String)}.
          * @throws Exception
          */
          @Test
          public void testGetMyLinkByShortLink() throws Exception {
          JunitParamUtil junitUtil = new JunitParamUtil(System.getProperty("user.dir") + "/test/com/runqianapp/ngr/link/dao/getmylinkbyshortlinkparams",1);
          // 從參數文件中獲取到的參數List
          List paramList = junitUtil.getParamList();
          for (int i = 0; i < paramList.size(); i++) {
          JunitParam param = (JunitParam) paramList.get(i);
          MyLink linkCheck = linkDao.getMyLinkByShortLink(param.getString(0));
          assertEquals("判斷獲取到的超鏈接是否為空",false,linkCheck.getLinkName().equals(""));
          }
          }
          /**
          * 測試修改超鏈接方法
          * Test method for {@link com.runqianapp.ngr.link.dao.LinkDao#modifyMyLink(com.runqianapp.ngr.data.model.MyLink)}.
          * @throws Exception
          */
          @Test
          public void testModifyMyLink() throws Exception {
          JunitParamUtil junitUtil = new JunitParamUtil(System.getProperty("user.dir") + "/test/com/runqianapp/ngr/link/dao/modifylinkparams",6);
          // 從參數文件中獲取到的參數List
          List paramList = junitUtil.getParamList();
          for (int i = 0; i < paramList.size(); i++) {
          MyLink myLink = new MyLink();
          JunitParam param = (JunitParam) paramList.get(i);
          // 獲取并設置參數
          myLink.setShortLink(param.getString(0));
          myLink.setLinkName(param.getString(1));
          myLink.setLinkUrl(param.getString(2));
          myLink.setLinkDes(param.getString(3));
          myLink.setIsRes(param.getInt(4));
          myLink.setParams(param.getString(5));
          linkDao.modifyMyLink(myLink);
          String linkName = linkDao.getMyLinkByShortLink(param.getString(0)).getLinkName();
          String linkUrl = linkDao.getMyLinkByShortLink(param.getString(0)).getLinkUrl();
          String linkDes = linkDao.getMyLinkByShortLink(param.getString(0)).getLinkDes();
          int linkIsRes = linkDao.getMyLinkByShortLink(param.getString(0)).getIsRes();
          String linkParams = linkDao.getMyLinkByShortLink(param.getString(0)).getParams();
          assertEquals("判斷超鏈接名稱是否已被修改",param.getString(1),linkName);
          assertEquals("判斷超鏈接Url是否已被修改",param.getString(2),linkUrl);
          assertEquals("判斷超鏈接描述是否已被修改",param.getString(3),linkDes);
          assertEquals("判斷超鏈接引用是否已被修改",param.getInt(4),linkIsRes);
          assertEquals("判斷超鏈接參數是否已被修改",param.getString(5),linkParams);
          }
          }
          /**
          * 測試新增超鏈接方法
          * Test method for {@link com.runqianapp.ngr.link.dao.LinkDao#saveLink(com.runqianapp.ngr.data.model.MyLink)}.
          * @throws Exception
          */
          @Test
          public void testSaveLink() throws Exception {
          // Junit參數工具類
          JunitParamUtil junitUtil = new JunitParamUtil(System.getProperty("user.dir") + "/test/com/runqianapp/ngr/link/dao/savelinkparams",6);
          // 從參數文件中獲取到的參數List
          List paramList = junitUtil.getParamList();
          for (int i = 0; i < paramList.size(); i++) {
          MyLink myLink = new MyLink();
          // Junit參數類
          JunitParam param = (JunitParam) paramList.get(i);
          // 獲取并設置參數
          myLink.setLinkName(param.getString(1));
          myLink.setLinkUrl(param.getString(2));
          myLink.setLinkDes(param.getString(3));
          myLink.setIsRes(param.getInt(4));
          myLink.setParams(param.getString(5));
          //根據數據總條數來獲得最后一個超鏈接ID,用于斷言
          DBAccess dba = new DBAccess();
          String shortLink = "";
          StringBuffer sql = new StringBuffer();
          sql.append("select count(*) total from t_hyperlink");
          ResultSet rs  = dba.executeQuery(sql.toString());
          int total = 0;
          while(rs.next()){
          total = rs.getInt("total");
          }
          linkDao.saveLink(myLink);
          MyLink checkLink = linkDao.getMyLinkByShortLink("/link"+total);
          assertEquals("判斷超鏈接名稱",param.getString(1),checkLink.getLinkName());
          assertEquals("判斷超鏈接URL",param.getString(2),checkLink.getLinkUrl());
          assertEquals("判斷超鏈接描述",param.getString(3),checkLink.getLinkDes());
          assertEquals("判斷超鏈接是否引用",param.getInt(4),checkLink.getIsRes());
          assertEquals("判斷超鏈接參數",param.getString(5),checkLink.getParams());
          }
          //壓力測試
          //      for(int i = 20;i<1000;i++){
          //          MyLink myLink = new MyLink();
          //          myLink.setShortLink("/link100");
          //          myLink.setLinkName("測試用例01");
          //          myLink.setLinkUrl("http://www.runqian.com.cn");
          //          myLink.setLinkDes("");
          //          myLink.setIsRes(1);
          //          try {
          //              linkDao.saveLink(myLink);
          //              MyLink checkLink = linkDao.getMyLinkByShortLink("/link20");
          //              assertEquals("判斷超鏈接名稱","測試用例01",checkLink.getLinkName());
          //          } catch (GeeznException e) {
          //              // TODO Auto-generated catch block
          //              e.printStackTrace();
          //          }
          //      }
          }
          /**
          * 模擬PathUtils
          */
          public  static void mockPathUtils() {
          new MockUp<PathUtils>() {
          @Mock
          public String getAppPhyPath() {
          return setProjectPath;
          }
          };
          }
          }

          posted on 2014-04-03 11:03 順其自然EVO 閱讀(284) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2014年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 长丰县| 开封县| 斗六市| 九江市| 和静县| 萝北县| 龙江县| 腾冲县| 九江市| 太湖县| 应城市| 永泰县| 邵东县| 广宗县| 昌邑市| 涞源县| 宿州市| 静乐县| 大渡口区| 香格里拉县| 吉隆县| 资中县| 五家渠市| 布尔津县| 和龙市| 永福县| 毕节市| 前郭尔| 白山市| 长岛县| 桂平市| 杭州市| 灌阳县| 兴隆县| 都江堰市| 木里| 阿鲁科尔沁旗| 谢通门县| 山西省| 博罗县| 武城县|