• <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-1-21 16:45 | 作者: 廖雪峰 | 來源: 希賽網 | 查看: 141次 | 進入領測軟件測試網論壇討論

    領測軟件測試網 軟件測試技術門戶cPW~8?&r-_&|


    )LL/l Y(mpublic abstract class TransactionCallback {
    /M q4Q lR(d  public final Object  execute() throws Exception {
    `0Q?6l Uy\`  Transaction tx =  HibernateUtil.getCurrentSession().beginTransaction();軟件測試技術門戶6R eeR4p1PW^8\
      try {軟件測試技術門戶*o8\4sldmqP g"Y
      Object r =  doInTransaction();
    $u.{KRG1z$Y&u.H  tx.commit();軟件測試技術門戶8Mfo*^vgH
      return r;軟件測試技術門戶 Sp x*U(K;Q'L
      }
    4Yn4Y*f8Le  catch(Exception e) {
    +_gK#k*S X  tx.rollback();軟件測試技術門戶YXL7V9Tzg9B
      throw e;
    |h1?9p:is^1U0n;T;zT  }軟件測試技術門戶%I3?2I(O?"?h
      }軟件測試技術門戶-p9z.[5q2h
      // 模板方法: 軟件測試技術門戶I] B#in-|6a
      protected abstract Object  doInTransaction() throws Exception;軟件測試技術門戶 v3D"QV B ]-E
      }

    o7U!aD6w'`    其原理是使用JDK提供的動態代理。由于JDK的動態代理只能對接口代理,因此,要求DAO組件必須實現接口。如果只有具體的實現類,則只能考慮CGLIB之類的第三方庫,在此我們不作更多討論。

    /O6r'{+H.U+V;j"g S-M 軟件測試技術門戶!m![+a.X8c!_U

        下面我們需要編寫DatabaseFixture,負責啟動HSQLDB數據庫,并在@Before方法中初始化數據庫表。該DatabaseFixture可以在所有的DAO組件的單元測試類中復用:

    1XLI,m 老湿亚洲永久精品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>