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

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

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

    posts - 165, comments - 198, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    測(cè)試 servlet(轉(zhuǎn))

    Posted on 2007-10-31 11:11 G_G 閱讀(1088) 評(píng)論(2)  編輯  收藏 所屬分類: JUnit
    1. HttpUnit
    1>servlet可以脫離容器,容易把該測(cè)試寫入ant或maven腳本,讓測(cè)試進(jìn)行。
    2>httpunit在測(cè)試servlet行為時(shí),采用的是完全模擬瀏覽器,有時(shí)測(cè)試比較難寫。

    package?Cactus.test.support;

    import?junit.framework.TestCase;
    import?Cactus.HelloWorld;

    import?com.meterware.httpunit.GetMethodWebRequest;
    import?com.meterware.httpunit.WebRequest;
    import?com.meterware.httpunit.WebResponse;
    import?com.meterware.servletunit.InvocationContext;
    import?com.meterware.servletunit.ServletRunner;
    import?com.meterware.servletunit.ServletUnitClient;
    import?junit.framework.Assert;
    ?
    public?class?HttpUnitTestHelloWorld?extends?TestCase?{
    ?
    ?
    protected?void?setUp()?throws?Exception?{
    ??
    super.setUp();
    ?}
    ?
    ?
    protected?void?tearDown()?throws?Exception?{
    ??
    super.tearDown();
    ?}
    ?
    ?
    public?void?testHelloWorld()?{
    ??
    ??
    try?{

    ???
    //?創(chuàng)建Servlet的運(yùn)行環(huán)境
    ???ServletRunner?sr?
    =?new?ServletRunner();
    ???
    //?向環(huán)境中注冊(cè)Servlet
    ???sr.registerServlet("HelloWorld",?HelloWorld.class.getName());
    ?
    ???
    //?創(chuàng)建訪問Servlet的客戶端
    ???ServletUnitClient?sc?
    =?sr.newClient();

    ???
    //?發(fā)送請(qǐng)求
    ???WebRequest?request?
    =?new?GetMethodWebRequest("http://localhost/HelloWorld");
    ???request.setParameter(
    "username",?"testuser");
    ???
    ???
    //用委托加載?is
    ???InvocationContext?ic?=?sc.newInvocation(request);
    ???HelloWorld?is?
    =?(HelloWorld)?ic.getServlet();
    ?
    ???
    //?測(cè)試servlet的某個(gè)方法
    ???Assert.assertTrue(is.authenticate());

    ???
    //?獲得模擬服務(wù)器的信息
    ???WebResponse?response?=?sc.getResponse(request);

    ???
    //?斷言
    ???Assert.assertTrue(response.getText().equals("testuser:Hello?World!"));

    ??}?
    catch?(Exception?e)?{

    ???e.printStackTrace();

    ??}

    ?}
    ?
    }


    Jetty
    package?Cactus.test.support;

    import?org.mortbay.jetty.Connector;
    import?org.mortbay.jetty.Server;
    import?org.mortbay.jetty.bio.SocketConnector;
    import?org.mortbay.jetty.servlet.ServletHandler;
    ?
    import?com.meterware.httpunit.WebConversation;
    import?com.meterware.httpunit.WebResponse;
    ?
    import?junit.framework.Assert;
    import?junit.framework.TestCase;
    ?
    public?class?JettySampleTest?extends?TestCase?{
    ?
    ?Server?server;
    ?
    protected?void?setUp()?throws?Exception?{
    ??????
    //通過代碼設(shè)置并啟動(dòng)一個(gè)服務(wù)器,該服務(wù)器是servlet的測(cè)試容器
    ??????super.setUp();
    ??????server?
    =?new?Server();
    ??????Connector?connector
    =new?SocketConnector();
    ??????connector.setPort(
    80);
    ??????server.setConnectors(
    new?Connector[]{connector});
    ??????ServletHandler?handler
    =new?ServletHandler();
    ??????server.setHandler(handler);
    ??????handler.addServletWithMapping(
    "Cactus.HelloWorld",?"/");
    ??????server.start();
    ?}
    ?
    ?
    protected?void?tearDown()?throws?Exception?{
    ??
    super.tearDown();
    ??server.stop();
    ?}
    ?
    ?
    public?void?testHellWorld()?{
    ??
    try?{
    ???WebConversation?wc?
    =?new?WebConversation();
    ???WebResponse?web?
    =?wc.getResponse("http://127.0.0.1/HelloWorld");
    ???String?result
    =web.getText();
    ???Assert.assertEquals(result,
    "null:Hello?World!");
    ??
    ??}?
    catch?(Exception?e)?{
    ???e.printStackTrace();
    ??}
    ?}
    }


    評(píng)論

    # re: 測(cè)試 servlet(轉(zhuǎn))  回復(fù)  更多評(píng)論   

    2007-11-15 21:46 by 劉寶華
    請(qǐng)問一下,如何測(cè)試有輸入?yún)?shù)的servlet?
    如下。
    DataInputStream dis = new DataInputStream(HttpServletRequest.getInputStream());
    dis.readUTF();
    測(cè)試代碼該如何寫?

    # re: 測(cè)試 servlet(轉(zhuǎn))  回復(fù)  更多評(píng)論   

    2007-11-16 15:37 by G_G
    http://www.tkk7.com/Good-Game/archive/2007/11/02/157726.html

    你看看這 個(gè)blog 這有對(duì) setAttribute 的方法
    主站蜘蛛池模板: 亚洲精品无码成人片久久不卡 | 97在线视频免费播放| 青娱乐在线免费观看视频| 亚洲不卡1卡2卡三卡2021麻豆| 亚洲自偷自偷在线制服 | 亚洲熟妇无码av另类vr影视| 亚洲一区二区三区四区在线观看| 亚洲av日韩av欧v在线天堂| 久久久久国色AV免费看图片 | 亚洲精品无码久久久久| 免费乱码中文字幕网站| 最近的免费中文字幕视频| 色老头永久免费网站| 免费无码黄网站在线看| a级毛片免费观看网站| 在线观看亚洲电影| 亚洲日韩一区精品射精| 亚洲人成综合在线播放| 亚洲精品美女在线观看播放| 亚洲综合国产精品| 亚洲av无码一区二区三区乱子伦 | 亚洲乱码中文字幕在线| 亚洲首页国产精品丝袜| 亚洲国产视频网站| 亚洲欧洲高清有无| 亚洲精品国产免费| 亚洲福利一区二区三区| 亚洲成无码人在线观看| 亚洲成a人片在线观看中文app| 91在线精品亚洲一区二区| 久久亚洲国产视频| 亚洲人成网站影音先锋播放| 亚洲国产精品自在线一区二区| 久久亚洲精品中文字幕无码| 亚洲人成在线观看| 亚洲成在人线电影天堂色| 亚洲人成片在线观看| 亚洲中文字幕一二三四区| 亚洲AV无码成人精品区日韩| 小说专区亚洲春色校园| 一本一道dvd在线观看免费视频|