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

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
怎樣使用 Junit Framework 進行單元測試的編寫
作者:網絡轉載 發布時間:[ 2014/9/26 11:09:44 ] 推薦標簽:Junit 單元測試

  在公開內部狀態數據後,我們可以編寫我們的測試單元了,單元測試的選擇方法和選擇尺度已經在本文前面章節進行了說明,但是仍然需要注意的是,由于 assert 方法會拋出一個 error,你應該在測試方法的后集中用 assert 相關方法進行判斷,這樣可以確保資源得到釋放。
對數據庫連接池的例子,我們可以建立測試類 DefaultConnectionProxyTest,同時建立數個 test case,如下:

  示例二
 /**
 * 這個類對示例一中的類進行簡單的測試。
 *
 */
 public class DefaultConnectionProxyTest extends TestCase {
     private DefaultConnectionProxy conProxy = null;
     private OracleConnectionCacheImpl cacheImpl = null;
     private Connection con = null;
     /** 設置測試的 fixture,建立必要的測試起始環境。
     */
     protected void setUp() {
         conProxy = new DefaultConnectionProxy();
         conProxy.start();
         cacheImpl = conProxy.getConnectionCache();
     }
     /** 對示例一中的對象進行服務啟動后的狀態測試,檢查是否在服務啟動后,
連接池的參數設置是否正確。
     */
     public void testConnectionProxyStart() {
         int minConnections = 0;
         int maxConnections = 0;
         assertNotNull(cacheImpl);
         try      {
             minConnections = Integer.parseInt(PropertyManager.getProperty
             ("DefaultConnectionProxy.minConnections"));
             maxConnections = Integer.parseInt(PropertyManager.getProperty
             ("DefaultConnectionProxy.maxConnections"));
         } catch (Exception e) {
             // ignore the exception
         }
         assertEquals(cacheImpl.getMinLimit(), minConnections);
         assertEquals(cacheImpl.getMaxLimit(), maxConnections);
         assertEquals(cacheImpl.getCacheSize(), minConnections);
     }
     /** 對示例一中的對象進行獲取數據庫連接的測試,看看是否可以獲取有效的數據庫連接,
并且看看獲取連接后,連接池的狀態是否按照既定的策略進行變化。由于 assert 方法拋出的是
 error 對象,因此盡可能把 assert 方法放置到方法的后集體進行測試,這樣在方法內打開的
資源,才能有效的被正確關閉。
     */
     public void testGetConnection() {
         int cacheSize = cacheImpl.getCacheSize();
         int activeSize = cacheImpl.getActiveSize();
         int cacheSizeAfter = 0;
         int activeSizeAfter = 0;
         con = conProxy.getConnection();
         if (con != null) {
             activeSizeAfter = cacheImpl.getActiveSize();
             cacheSizeAfter = cacheImpl.getCacheSize();
           
             try      {
                 con.close();
             } catch (SQLException e) {
             }
         } else {
             assertNotNull(con);
         }
         /* 如果連接池中的實際使用連接數小于緩存連接數,檢查獲取的新的數據連接是否
從緩存中獲取,反之連接池是否建立新的連接
         */
         if (cacheSize > activeSize)      {
             assertEquals(activeSize + 1, activeSizeAfter);
             assertEquals(cacheSize, cacheSizeAfter);
         } else {
             assertEquals(activeSize + 1, cacheSizeAfter);
         }
     }
     /** 對示例一中的對象進行數據庫連接釋放的測試,看看連接釋放后,連接池的
狀態是否按照既定的策略進行變化。由于 assert 方法拋出的是 error 對象,因此盡可
能把 assert 方法放置到方法的后集體進行測試,這樣在方法內打開的
資源,才能有效的被正確關閉。
     */
     public void testConnectionClose() {
         int minConnections = cacheImpl.getMinLimit();
         int cacheSize = 0;
         int activeSize = 0;
         int cacheSizeAfter = 0;
         int activeSizeAfter = 0;
         con = conProxy.getConnection();
         if (con != null) {
             cacheSize = cacheImpl.getCacheSize();
             activeSize = cacheImpl.getActiveSize();
             try      {
                 con.close();
             } catch (SQLException e) {
             }
             activeSizeAfter = cacheImpl.getActiveSize();
             cacheSizeAfter = cacheImpl.getCacheSize();
         } else {
             assertNotNull(con);
         }
         assertEquals(activeSize, activeSizeAfter + 1);
         /* 如果連接池中的緩存連接數大于少緩存連接數,檢查釋放數據連接后是否
緩存連接數比之前減少了一個,反之緩存連接數是否保持為少緩存連接數
         */
         if (cacheSize > minConnections)      {
             assertEquals(cacheSize, cacheSizeAfter + 1);
         } else {
             assertEquals(cacheSize, minConnections);
         }
     }
   
 /** 釋放建立測試起始環境時的資源。
     */
 protected void tearDown() {
         cacheImpl = null;
         conProxy.destroy();
     }
     public DefaultConnectionProxyTest(String name) {
         super(name);
     }
 /** 你可以簡單的運行這個類從而對類中所包含的測試單元進行測試。
     */
     public static void main(String args[]) {
         junit.textui.TestRunner.run(DefaultConnectionProxyTest.class);
     }
 }

上一頁123下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 黄色片免费网址 | 久操网视频 | 国产欧美日韩在线不卡第一页 | 激情综合网五月 | 国内精品久久久久影院蜜芽 | 欧美一区二区三区免费 | www狠狠干| 欧美亚洲综合在线观看 | 婷婷狠狠干 | 日本精品一二三区 | 热久久国产精品 | 成人小视频在线观看免费 | 国产综合色在线视频区 | 麻豆一区区三三四区产品麻豆 | 久草香蕉在线 | 成人毛片100部免费看 | 东方aⅴ免费观看久久av | 五月天在线观看免费视频播放 | 日韩精品麻豆 | 国产成人乱码一区二区三区 | 特级黄色网 | 久久韩国 | 黄网在线观看网址入口 | 欧美v在线 | 成人在线播放视频 | 欧美成人看片黄a免费看 | 日本宅男午夜免费永久网站 | 激情综合色五月丁香六月亚洲 | 国产高清在线精品一区二区三区 | 韩国成人理伦片免费播放 | 日韩免费一级a毛片在线播放一级 | 日韩欧美一区二区三区中文精品 | 夜夜夜夜曰天天天天拍国产 | 特级黄色网 | 久久狠色噜噜狠狠狠狠97 | 日韩激情小视频 | 欧美成视频 | 最近韩国日本高清免费观看 | 欧美 日韩 国产在线 | 日本欧美一二三区色视频 | 亚洲一区二区三区高清视频 |