亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

基于mock對象和JUnit框架簡化Spring Web組件單元測試(1)

2019-11-18 11:16:30
字體:
來源:轉載
供稿:網友

對于java組件開發者來說,他們都盼望擁有一組能夠對組件開發提供全面測試功能的好用的單元測試。一直以來,與測試獨立的Java對象相比,測試傳統型J2EE Web組件是一項更為困難的任務,因為Web組件必須運行在某種服務器平臺上并且它們還要與基于HTTP的Web交互細節相聯系。

易測性(在框架中測試每個組件而不管其具體種類)是SPRing框架所提倡的要害原則之一。從這一角度看,Spring是對核心J2EE模型的一個重大改進—在以前情況下,在容器外進行組件測試是很難實現的,而且即使是容器內測試也往往要求復雜的安裝過程。

本文正是想集中探討Spring的易測性特征—它能使得對Web組件進行單元測試就象測試普通Java對象(POJO)一樣輕易。

一、Spring Mock類簡介

Mock對象是一個術語,原來主要流行于eXtreme程序員和JUnit小組中。在單元測試上下文中,一個mock對象是指這樣的一個對象——它能夠用一些“虛構的占位符”功能來“模擬”實現一些對象接口。在測試過程中,這些虛構的占位符對象可用簡單方式來模擬對于一個組件的期望的行為和結果,從而讓你專注于組件本身的徹底測試而不用擔心其它依靠性問題。

Spring從J2EE的Web端為每個要害接口提供了一個mock實現:

MockHttpServletRequest—幾乎每個單元測試中都要使用這個類,它是J2EE Web應用程序最常用的接口HttpServletRequest的mock實現。

MockHttpServletResponse—此對象用于HttpServletResponse接口的mock實現。

MockHttpsession—這是另外一個經常使用的mock對象(后文將討論此類在會話綁定處理中的應用)。

DelegatingServletInputStream—這個對象用于ServletInputStream接口的mock實現。

DelegatingServletOutputStream—這個對象將代理ServletOutputStream實現。在需要攔截和分析寫向一個輸出流的內容時,你可以使用它。

總之,在實現你自己的測試控制器時,上面這些對象是最為有用的。然而,Spring也提供了下列相應于其它不太常用的組件的mock實現(假如你是一個底層API開發者,那么你可能會找到其各自的相應用法):

MockEXPressionEvaluator—這個mock對象主要應用于你想開發并測試你自己的基于JSTL的標簽庫時。

MockFilterConfig—這是FilterConfig接口的一個mock實現。

MockPageContext—這是jsp PageContext接口的一個mock實現。你會發現這個對象的使用有利于測試預編譯的JSP。

MockRequestDispatcher—RequestDispatcher接口的一個mock實現,你主要在其它mock對象內使用它。

MockServletConfig—這是ServletConfig接口的一個mock實現。在單元測試某種Web組件(例如Struts框架所提供的Web組件)時,要求你設置由MockServletContext所實現的ServletConfig和ServletContext接口。

那么,我們該如何使用這些mock對象呢?我們知道,HttpServletRequest是一個持有描述HTTP參數的固定值的組件,而正是這些參數驅動Web組件的功能。MockHttpServletRequest,作為HttpServletRequest接口的一個實現,答應你設置這些不可改變的參數。在典型的Web組件測試情形下,你可以實例化這個對象并按如下方式設置其中的任何參數:

//指定表單方法和表單行為

MockHttpServletRequest request = new MockHttpServletRequest("GET", "/main.app");

request.addParameter("choice", expanded);

request.addParameter("contextMenu", "left");

同樣地,你可以實例化并全面地控制和分析HttpResponse和HttpSession對象。接下來,讓我們簡要觀察Spring所提供的特定的JUnit框架擴展。

二、JUnit框架擴展

Spring提供了下列一些特定的JUnit框架擴展:

AbstractDependencyInjectionSpringContextTests—這是一個針對所有測試的超類,其具體使用依靠于Spring上下文。

AbstractSpringContextTests—這是一個針對所有的JUnit測試情形的超類。它使用一個Spring上下文。并且,一般在測試中不是直接使用它,而是使用AbstractDependencyInjectionSpringContextTests或者AbstractTransactionalSpringContextTests這樣的派生類。

AbstractTransactionalSpringContextTests—這是一個針對所有測試的超類,我們一般把它應用在事務相關的測試中。注重,一旦完成每個測試它就會正常地回滾事務;而且你需要重載onSetUpInTransaction和onTearDownInTransaction方法以便手工開始并提交事務。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成年人视频网站欧美| 欧美中文在线观看国产| 美女精品久久久| 欧美专区日韩视频| 亚洲男人的天堂在线播放| 91精品久久久久久久久久另类| 国产狼人综合免费视频| 久久国产精品久久国产精品| 亚洲精品一区二区在线| 午夜精品一区二区三区在线视| 日韩欧美精品免费在线| 国产精品福利网| 亚洲图片在线综合| 国产自摸综合网| 欧美极品少妇与黑人| 亚洲一区二区久久久久久久| 91在线免费看网站| 不卡在线观看电视剧完整版| 国产97在线视频| 91av在线免费观看视频| 夜夜嗨av一区二区三区四区| 日韩大片免费观看视频播放| 久久影视电视剧免费网站清宫辞电视| 日韩高清av一区二区三区| 欧美黑人性生活视频| 亚洲精品电影在线| 狠狠躁夜夜躁人人躁婷婷91| 国产一区二区视频在线观看| 国产亚洲人成a一在线v站| 欧美电影免费观看网站| 久久91精品国产91久久跳| 欧美激情影音先锋| 欧美在线精品免播放器视频| 欧美亚洲另类制服自拍| 欧美剧在线观看| 欧美日韩高清区| 欧美最近摘花xxxx摘花| 久久人人爽亚洲精品天堂| 日韩在线视频线视频免费网站| 久久亚洲精品成人| 97视频色精品| 久久这里只有精品99| 国产成人综合精品| 97超级碰在线看视频免费在线看| 亚洲国产精品高清久久久| 欧美视频在线观看免费| 在线观看久久久久久| 日韩欧美高清视频| 97av在线视频| 国产精品久久91| 97热精品视频官网| 久久精品国产精品| 久久这里只有精品视频首页| 国产精品久久久久久久久影视| 国产精品私拍pans大尺度在线| 一区二区三区国产视频| 欧美成人精品xxx| 欧美成人手机在线| 亚洲一区二区三区成人在线视频精品| 国产精品久久综合av爱欲tv| 久久久久久香蕉网| 亚洲女人被黑人巨大进入| 韩国19禁主播vip福利视频| 日韩高清人体午夜| 91精品国产高清久久久久久91| 亚洲国产精品99| 国产视频丨精品|在线观看| 欧美成人精品三级在线观看| 亚洲第一中文字幕| 亚洲欧美国产视频| 亚洲高清免费观看高清完整版| 久久久伊人日本| 国内精品久久久久久中文字幕| 国产欧美日韩中文字幕在线| 欧美亚州一区二区三区| 伊人久久久久久久久久久| 92福利视频午夜1000合集在线观看| 欧美极品少妇xxxxⅹ喷水| 精品国产成人在线| 欧美精品video| 国产精品欧美风情| 亚洲精品美女免费| 欧美一区二三区| 亚洲国产欧美一区二区丝袜黑人| 国产精品久久电影观看| 成人性生交大片免费看视频直播| 国产女同一区二区| 色偷偷av亚洲男人的天堂| 亚洲色图35p| 最近2019中文字幕大全第二页| 欧美精品在线免费播放| 岛国av午夜精品| 欧美激情一级欧美精品| 国产一区二区三区在线免费观看| 美乳少妇欧美精品| 亚洲二区中文字幕| 国产精品免费一区| 国产精品视频最多的网站| 91视频国产高清| 国产成人精品视| 一区二区成人av| 国产欧美一区二区| 国产自产女人91一区在线观看| 国产欧美一区二区三区久久人妖| xxav国产精品美女主播| 国产精品观看在线亚洲人成网| 亚洲综合在线播放| 成人在线播放av| 亚洲色在线视频| xxxx欧美18另类的高清| 中文字幕欧美日韩| 欧美成人性生活| 日韩国产中文字幕| 国产一区二区视频在线观看| 亚洲精品国产成人| 久久视频在线播放| 久久精品久久久久久| 91精品在线观看视频| 夜夜嗨av色综合久久久综合网| 亚洲男人天堂古典| 亚洲japanese制服美女| 亚洲免费一在线| 亚洲一区二区久久久久久久| 国产精品美女久久久久久免费| 国产成人精品午夜| 成人中文字幕+乱码+中文字幕| 91高清在线免费观看| 久久99精品视频一区97| 深夜精品寂寞黄网站在线观看| 精品日韩中文字幕| …久久精品99久久香蕉国产| www高清在线视频日韩欧美| 国产精品视频一| 国产精品啪视频| 国产亚洲美女精品久久久| 亚洲精品动漫久久久久| 欧美一级成年大片在线观看| 26uuu另类亚洲欧美日本一| 欧美一区二区视频97| 97视频免费观看| 欧美大尺度电影在线观看| 久久久伊人欧美| 日韩av第一页| 久久精品久久久久久国产 免费| 久久精品国产亚洲| 欧美乱大交xxxxx另类电影| 国产精品自产拍在线观看中文| 成人国产在线视频| 久久国产色av| 色噜噜狠狠狠综合曰曰曰| 国产精品久久久久久久久久三级| …久久精品99久久香蕉国产| 国产精品444| 97精品欧美一区二区三区| 日韩av免费看网站| 5278欧美一区二区三区| 欧美日韩国产页| 久久亚洲影音av资源网| 亚洲护士老师的毛茸茸最新章节| 91亚洲精品久久久久久久久久久久| 日本伊人精品一区二区三区介绍| 国产视频亚洲视频| 国产精品劲爆视频| 亚洲国产精品久久久久秋霞不卡|