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

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

  • <strong id="5koa6"></strong>
  • 2011,更要虎虎的 QQ群 測試開發工程師(95934315) Blog:http://cuckoo2010.blog.163.com/

    用cactus,jetty實現對servlet類進行單元測試二

    上一篇 / 下一篇  2009-10-30 22:31:59 / 個人分類:thinking in testing

    按照官網的定義,我們就可以用MILY: 'Arial','sans-serif'; FONT-SIZE: 10.5pt" lang=EN-US>cactusJUnit一起來完成對上述servlet的測試了。

    首先,我們來建一個web項目,我定義的名稱為cactustest;把下載下來的cactus解壓,把cactus-1.7.2\lib中的jar包復制到WebRoot\WEB-INF\lib下,也可以建立自己的用戶庫,方便以后的項目使用。搭建好環境后,接下來就可以寫上面程序的測試類啦,讓我們來用cactus為上面的程序寫一個測試類,測試類代碼為:

    package com.test.servlet;

     

    import org.apache.cactus.ServletTestCase;

    import org.apache.cactus.WebRequest;

     

    public class LoginServletCactusTest extends ServletTestCase {

        //先來個正確的測試用例

        //分別為usernamepassword賦值

        public void beginLoginUser(WebRequest webRequest) {

           webRequest.addParameter("username", "cuckoo");

           webRequest.addParameter("password", "123");

        }

       //使用assertTrue方法斷言,如果正確返回true

        public void testLoginUser() {

           LoginServlet loginServlet = new LoginServlet();

           assertTrue(loginServlet.loginUser(request));

        }

       //再來個錯誤的測試用例

       //分別為usernamepassword賦值

        public void beginInLoginUser(WebRequest webRequest) {

           webRequest.addParameter("username", "guest");

           webRequest.addParameter("password", "123456");

        }

      //使用assertFalse方法斷言,如果錯誤返回true

        public void testInLoginUser() {

           LoginServlet loginServlet = new LoginServlet();

           assertFalse(loginServlet.loginUser(request));

        }

    }

    這樣,測試類就搞定了,

     下圖是我的項目結構如下圖:

     

    OK,現在就可以啟動tomcat了,部署成功后在地址欄上輸入http://localhost:8080/cactustest/ServletTestRunner?suite=com.test.servlet.LoginServletCactusTest  回車,你將會看到讓自己感到高興的結果,此種方式是以XML形式輸出測試結果,如下圖:

    還可以用cactus自定義的的樣式表的方式輸出測試結果,只需要把cactus自帶的cactus-report.xsl文件加入到webroot目錄下就可以了,在地址欄上輸入http://localhost:8080/cactustest/ServletTestRunner?suite=com.test.servlet.LoginServletCactusTest&xsl=cactus-report.xsl  回車,這種形式的輸出比較美觀,如下圖所示:

    到這里,一個單獨用JUnit不能完成的測試用上cactus就搞定了,或許我們會感覺高興下,從技術上我們是實現了用JUnitcactusservlet的測試,但細心的你是否已經發現了其中的不便之處,就是每次對一個servlet測試前都要啟動tomcat,這樣大大增加了測試時間,也可能影響項目進度。有沒有什么方法可以解決這個問題呢?細心的你可能已經發現,在我的項目結構圖上,已經有一個LoginServletJettyTest.java類。是的,這個就是為了解決上面問題而用的另一種框架,它就是Jetty。它運行測試servlet就像用JUnit測試普通java類一樣那么簡單,不需要啟動tomcat。

    在這里我們可以使用Jetty 它的下載地址為 http://jetty.mortbay.org/jetty/index.html ,它是個Java寫的HTTP服務器,本身也是個Container,Cactus集成了Jetty,并提供與測試相關的簡便類別。

    使用Cactus+Jetty執行測試,在更大的程度上隱藏了測試運行過程的細節,您不必關心Redirector Proxy,更不一定要關心TestCase在客戶端與服務器端的行為,運行起來就如同在運作一個JUnit測試。

       WebRoot\WEB-INF\lib原來的基礎上加入cactus.core.framework.uberjar.javaEE.14-1.8.1.jar就行了.

     

    未完,下篇 用cactus,jetty實現對servlet類進行單元測試三 繼續……


    TAG: Cactus cactus Jetty jetty Servlet servlet 單元測試

     

    評分:0

    我來說兩句

    顯示全部

    :loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

    日歷

    « 2011-06-13  
       1234
    567891011
    12131415161718
    19202122232425
    2627282930  

    數據統計

    • 訪問量: 15164
    • 日志數: 24
    • 文件數: 7
    • 建立時間: 2009-02-09
    • 更新時間: 2011-02-18

    RSS訂閱

    Open Toolbar
    老湿亚洲永久精品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>