• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    對DAO編寫單元測試

    發布: 2008-6-26 10:52 | 作者: 不詳 | 來源: 測試時代編輯整理 | 查看: 113次 | 進入軟件測試論壇討論

    領測軟件測試網

     public interface UserDao {
      User  queryForSignOn(String username);
      User queryUser(String  username);
      void createUser(User  user);
      void updateUser(User  user);
      boolean  updateEmailValidation(String username, int ticket);
      String  createPasswordTicket(User user);
      boolean  updatePassword(String username, String oldPassword, String newPassword);
      boolean  queryResetPassword(User user, String ticket);
      boolean  updateResetPassword(User user, String ticket, String password);
      void updateLock(User  user, long lockTime);
      void updateUnlock(User  user);
      }
        UserDaoImpl是其實現類:

     public class UserDaoImpl implements UserDao {
      public User  queryForSignOn(String username) {
      User user =  queryUser(username);
      if(user.getLocked())
      throw new  LockException(user.getLockDate());
      return user;
      }
     public User  queryUser(String username) {
      return (User)  HibernateUtil.query(User.class, username);
      }
     public void  createUser(User user) {
      user.setEmailValidation((int)(Math.random() * 1000000) + 0xf);
      HibernateUtil.createEntity(user);
      }
      // 其余方法略
      ...
      }
        由于將Hibernate事務綁定在Thread上,因此,實際的客戶端調用DAO組件時,還必須加入事務代碼:

     Transaction tx =  HibernateUtil.getCurrentSession().beginTransaction();
      try {
      dao.xxx();
      tx.commit();
      }
      catch(Exception e) {
      tx.rollback();
      throw e;
      }
        下面,我們開始對DAO組件編寫單元測試。前面提到了HSQLDB這一小巧的純Java數據庫。HSQLDB除了提供完整的JDBC驅動以及事務支持外,HSQLDB還提供了進程外模式(與普通數據庫類似)和進程內模式(In-Process),以及文件和內存兩種存儲模式。我們將HSQLDB設定為進程內模式及僅使用內存存儲,這樣,在運行JUnit測試時,可以直接在測試代碼中啟動HSQLDB。測試完畢后,由于測試數據并沒有保存在文件上,因此,不必清理數據庫。

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>