<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨心蕓蕓 @ JPeanut(舊版)

    搬遷至 http://www.17m.net.cn/

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      43 Posts :: 0 Stories :: 54 Comments :: 0 Trackbacks


    作者:陳市明/Slipper Feng 摘自:http://www.tkk7.com/JPeanut

    J2EE 是目前公認的比較慢的一種開發,相比 .net php asp 等而言。其實, j2ee 的開發者都深有體會的, java 代碼編寫的速度其實并不慢,在 eclipse jbuilder 等可視化界面的幫助下,編寫代碼變的越來越簡單;但是在調試的時候,每改完一個 java 或者 xml 代碼要預覽改的效果的話,必須要重新構建,部署,重啟服務器 , 這些動作反反復復,消耗的時間不少。

    近期為公司寫了個單元測試的框架,基本上解決了反反復復構建,部署,重啟服務器的問題。我們的項目的都是運用了類似 struts spring hibernate MVC 架構(下面簡稱 ssh ),不同的就是中間的 aop 是自己開發實現的,而沒有運用 spring 的。不過,我們的單元測試框架對標準的 struts spring hibernate 支持也挺好。

    STRUTS原理圖.JPG

    上面的是在 ssh 的一次交互的原理圖,做過 struts 開發者都會很熟悉。首先,是 jsp 通過 submit url 將表單數據提交給后臺 action servlet ,后臺通過在 struts-config.xml 中的配置找到相關的××× Action ,然后通過××× Service ,××× Dao 操作數據庫,再將數據返回給另外一個 jsp ,讓他顯示結果。

    模擬STRUTS的單元測試模擬圖.JPG


    上面的圖是我們單元測試框架實現構建,部署,重啟服務器的原理圖。我們很容易從圖上看的出來,我們寫了個 Test ××× Action 來模擬 2 jsp 的動作,該類分成 2 部分上面一部分是模擬了 jsp 頁面 submit 的動作(包括模擬提交給 url ,模擬提交數據),下面一部分是接收××× Action 返回的數據,然后,進行校驗(此處的校驗,我們用了 junit 的斷言功能)。通過用 java 類來模擬 jsp 的好處在于,我們可以完全把這個一個交互作為一個 application 來運行起來,非常容易的做到單步調試,而不用到真實的平臺上,啟動服務器上運行。(注:此處有 2 db :開發 db 和測試 db ,這個再以后的介紹中會講到)

    我們還為在這個架構上開發制定了流程:

    1 把當天需要開發的模塊的 java 代碼全部些好

    2 通過這種模式調試 java 代碼

    3 在確保這些 java 代碼無誤后,構建,部署,啟動服務器

    4 然后編寫所有的 jsp (因為修改 jsp 無需啟動服務器)

    這樣,在開發一天的所有代碼,幾乎都不用怎么重啟服務器,可以為開發人員省下很多時間,也使得開發人員喜歡的單步調試變的異常簡單,提高代碼的質量。

    我們已經在真實的項目中實施了該流程的開發,得到的效果和預期的一樣。當然還是比不過其他語言的開發,不過我們的架構還在不斷改進(通過改進流程、編寫 eclipse 等開發工具的插件等方法),使我們的開發人員可以更加快的進行 j2ee 的開發。


    posted on 2006-04-18 23:04 陳市明 閱讀(2791) 評論(9)  編輯  收藏 所屬分類: 基于j2ee單元測試框架介紹

    Feedback

    # re: 基于j2ee單元測試框架介紹之一-調試無需啟動中間件 2006-04-19 08:54 charon@xxx
    兄弟,你們公司是不是閉門造車很久了???  回復  更多評論
      

    # re: 基于j2ee單元測試框架介紹之一-調試無需啟動中間件 2006-04-19 21:39 葉子
    寫得形象易懂,有針對性.贊!  回復  更多評論
      

    # re: 基于j2ee單元測試框架介紹之一-調試無需啟動中間件 2006-04-20 12:50
    同意樓上觀點,寫得8錯,挺有思想的!赫赫!  回復  更多評論
      

    # re: 基于j2ee單元測試框架介紹之一-調試無需啟動中間件 2006-04-20 16:28 小陸
    業務層應該初一dao和service層之間。
    單元測試的重點應該在業務層上。

    從你的圖上,我沒看見業務層。  回復  更多評論
      

    # re: 基于j2ee單元測試框架介紹之一-調試無需啟動中間件 2006-04-20 19:17 陳市明
    @小陸
    恩,單元測試重點在業務層面,我現在是通過action去調用到后臺的業務層,所有的測試都是在action層面的。我這樣做的目的使為了讓單元測試做到功能測試的效果(呵呵,我使測試組成員,當然要減輕自己的工作量)。
    其實,我這樣做,通過代碼覆蓋率報告一樣可以做到業務層的 測試,只是對業務層的容錯出來還是很難測試到。  回復  更多評論
      

    # re: 基于j2ee單元測試框架介紹之一-調試無需啟動中間件 2006-04-25 14:43 廣州大盜
    創新的精神值得學習。
    但一個問題是, 你們的系統似乎沒有使用ejb。
    如果使用ejb會怎么處理,主要是容器負責的事務等。

       正如你說的,你是testor; 而且我注意到你們的流程第一點:1 把當天需要開發的模塊的 java 代碼全部些好。所以 我的感覺是,這只是對測試人員來說,不用頻繁部署和重啟服務器; 而且“不用”的原因是:一天只部署一次,你看我說的對嗎?
       所以,你講的測試框架對來說coder并不適用。

      回復  更多評論
      

    # re: 基于j2ee單元測試框架介紹之一-調試無需啟動中間件 2006-04-25 19:40 陳市明
    @廣州大盜
    呵呵,我們的項目的確是沒有ejb的,,所以框架目前沒有對ejb提供功能..但是,,并不是說完全沒有辦法..框架可以再'"基于j2ee單元測試框架介紹之二'"中可以看到,,框架有自己的插件協議,只要按照這個協議編寫,,完全不用修改原來的代碼,,久可以添加很多功能..,,當然也可以直接把junit的擴展封裝下作為我們的插件用,,相信關于ejb的我們還是可以做到的..公司之前大家都認識很難解決的jms的問題也通過自己的編寫jms插件來解決了..
    對于事務,,我們的項目中都用jta的,,這個在這個框架中,,我們也通過編寫了jta的模擬的transtraction,,在aop容器在內存中直接替換成我們的transation的了..雖然還是有點問題的,,但是還是解決這樣的問題了..  回復  更多評論
      

    # re: 基于j2ee單元測試框架介紹之一-調試無需啟動中間件 2006-06-04 10:07 Slipper Feng
    就要答辯了,緊張!  回復  更多評論
      

    # re: 基于j2ee單元測試框架介紹之一-調試無需啟動中間件 2006-06-05 23:51 陳市明
    呵呵,沒關系的哈,我來保駕  回復  更多評論
      

    主站蜘蛛池模板: 亚洲成av人片不卡无码久久| 国产成人免费A在线视频| 国产中文在线亚洲精品官网| 亚洲一区二区三区在线观看网站| 亚洲av片一区二区三区| 色婷婷亚洲一区二区三区| 无码国产精品一区二区免费式直播 | 在线视频精品免费| 91亚洲国产成人精品下载| 很黄很污的网站免费| 亚洲AV无码一区二区乱孑伦AS| 久久亚洲精品无码aⅴ大香| 无码国产精品一区二区免费vr | 亚洲视频在线观看2018| 日韩精品内射视频免费观看| 亚洲va无码va在线va天堂| 久久精品私人影院免费看| 久久精品国产亚洲AV电影| 在线a级毛片免费视频| 亚洲人成未满十八禁网站| 免费A级毛片无码A∨男男| 亚洲精品视频免费| 亚洲AV福利天堂一区二区三| 国产免费女女脚奴视频网 | 国产成人免费全部网站| 野花视频在线官网免费1| 亚洲人成色77777| 无人在线观看完整免费版视频| 亚洲日韩人妻第一页| 99精品免费视品| 亚洲成人中文字幕| 野花高清在线观看免费3中文 | 国产在线观a免费观看| 最新精品亚洲成a人在线观看| 自怕偷自怕亚洲精品| 久久久久免费看黄A片APP| 妇女自拍偷自拍亚洲精品| 国产精品亚洲аv无码播放| 在线视频免费观看爽爽爽| 又粗又长又爽又长黄免费视频| 无遮免费网站在线入口|