版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、修訂序號變更日期變更動作變更內(nèi)容詳情描述版本1.2010-04-25DEV2新建新建本文檔1.02.2011-01-12修改1 添加了修改頁,以后本文檔有修改時請?zhí)顚懶薷男畔?。如何撰寫測試用例1 概述WCM 底層的測試用例主要有以下三種:業(yè)務(wù)層的測試用例,即對 Mgr 的測試。服務(wù)層的測試用例,即對 ServiceProvider 的測試。發(fā)布組件的測試用例,即對發(fā)布置標的測試。本文將通過具體的問題。怎樣撰寫 WCM 的測試用例以及寫測試用例要注意的一些2 如何撰寫測試用例2.1 業(yè)務(wù)層的測試用例2.1.1 需要繼承的父類業(yè)務(wù)層的測試用例需要繼承 BaseMgrTest 類繼承 BaseMgr
2、Test 的原因:BaseMgrTest 的父類中定義了方法,可以在執(zhí)試用例時自動啟動 WCM。2.1.2 存放的位置WCM 組的成員,將測試用例放在工程/SourceCode/Java/test 這個 Source folder 下。如下圖所示:其他只需要將測試用例放在工程中的源碼目錄下即可。2.1.3 實例介紹需求在 WCM6.5 權(quán)限模型中,如果給成員(用戶或組織)在某個對象(站點或欄目)上添加了權(quán)限(權(quán)限值不為 0),那么系統(tǒng)會自動設(shè)置成員對該對象可并且可操作,設(shè)置成員對對象的路徑可注意:。這里使用了器實現(xiàn)設(shè)置成員對對象的可可操作以及對路徑的可。接口 IObjectMemberMgr.
3、java 是業(yè)務(wù)邏輯的接口,ObjectMemberMgr.java 實現(xiàn)了這一接口,并且實現(xiàn)上述的器。需要做的就是對這一業(yè)務(wù)層的器撰寫測試用例,下面將介紹如何撰寫這一測試用例。步驟1.創(chuàng)建測試用例的類文件在 Eclipse 中打開要測試的類 ObjectMemberMgr.java,新建一個測試用例類,如下:注意修改上面紅色框標注的兩個部分:Source folder 和 Superclass。如果要選擇具體的測試方法,可以點擊 next 進入選擇頁面,也可直接點擊 Finish 完成創(chuàng)建。這里,點擊 Finish 完成創(chuàng)建。直接2.撰寫測試器的測試用例器是否起到了作用,要滿足以下三點:首先
4、,在添其次,添最后,添限之前,成員對對象是不可限過程不出異常;的;限以后,成員對對象可可操作,對對象所在的路徑可。根據(jù)上面的三點分析,開始撰寫該測試用例,代碼如下:public void testOnAddRight() throws Exception /添限前的測試assertBeforeDataForTestOnAddRight();/添限try nId = 45;Channel channel = Channel.findById(nId);/使用 assertNotNull 方法,自動測試欄目是否存在assertNotNull(指定欄目不存在!ID= + nId + , channe
5、l);String sUserName = ;User user = User.findByName(sUserName);/使用 assertNotNull 方法,自動測試用戶是否存在assertNotNull(指定用戶不存在!UserName= + sUserName + ,user);/添加 rightRight right = Right.createNewInstance();/設(shè)置操作對象 right.setObject(channel);/設(shè)置操作成員 right.setOperator(user);/設(shè)置權(quán)限值 right.setValue(321); right.save(m
6、_oLoginUser); catch (Exception ex) /將異常信息到日志中l(wèi)ogger.error(測試testOnAddRight出現(xiàn)異常!, ex);/輸出異常信息,同時輸出堆棧信息fail(測試testOnAddRight出現(xiàn)異常!n+ CMyException.getStackTraceText(ex);添限以前,測試用戶對對象是否可。代碼如下:添再給出。限以后,測試用戶對對象的可見性的代碼,與添加記前的代碼類似,這里不private void assertBeforeDataForTestOnAddRight() throws WCMExceptionString s
7、UserName = ;User user = User.findByName(sUserName);/使用 assertNull 方法,自動測試用戶是否存在assertNotNull(指定用戶不存在!UserName= + sUserName + , user);IObjectMemberMgr oObjectMemberMgr = (IObjectMemberMgr) DreamFactory.createObjectById(IObjectMemberMgr);/測試數(shù)據(jù),包含對象以及對象所在的路徑 pTestDataOfUser = new / =用戶 ID,對象類型,對象 ID=/
8、4, WebSite.OBJ_TYPE, 3 , 4, Channel.OBJ_TYPE, 44 , 4, Channel.OBJ_TYPE, 45 ;/循環(huán)對對象所在路徑上節(jié)點的可性進試for (i = 0; i pTestDataOfUser.length; i+) pCurrTestData = pTestDataOfUseri;User currUser = user; if (currUser = null)fail(The current user not exists!UserId= + pCurrTestData0+ );nObjType = pCurrTestData1, n
9、ObjId = pCurrTestData2; String sErrorInfo = The result oferror!User= +currUser + , ObjType= + nObjType + , ObjId= + nObjId + ;/如果可(isVisible 返回的值為 true),則輸出錯誤信息 assertFalse(sErrorInfo,oObjectMemberMgr.isVisible(currUser,nObjType, nObjId);/添限后的測試assertAfterDataForTestOnAddRight();保存并運試用例,驗證通過即可。2.2 服
10、務(wù)層的測試用例2.2.1 需要繼承的父類服務(wù)層的測試用例需要繼承 BaseAjaxServiceTest 類繼承 BaseAjaxServiceTest 類的原因:在 BaseAjaxServiceTest 類中定義了啟動 WCM 的方法,并且定義了測試服務(wù)中方法的規(guī)則、測試數(shù)據(jù)的以及的輸出等。繼承了這個類以后,只需構(gòu)造服務(wù)中需要的數(shù)據(jù),僅僅實現(xiàn)少量的代碼即可。2.2.2 存放的位置WCM 組的成員,將測試用例放在工程/SourceCode/Java/test 這個 Source folder 下。如下圖所示:其他只需要將測試用例放在工程中的源碼目錄下即可。2.2.3 實例介紹需求測試 Obj
11、ectMemberServiceProvider.java 中的 delete 方法步驟1創(chuàng)建測試用例的類文件 ObjectMemberServiceProviderTest.java創(chuàng)建方法與上面業(yè)務(wù)層的測試用例的類文件相似,這里不再給出。注意修改需要繼承的類以及存放的位置。(如果測試類已經(jīng)存在,則不需要再創(chuàng)建)注意:在 ObjectMemberServiceProviderTest.java 中必須類似下面的代碼:/*定義變量:sRootId 表示測試數(shù)據(jù)存放的一級目錄;sServiceId 表示要測試的服務(wù)*/ private sic String sRootId = ObjectMem
12、ber,sServiceId =2撰寫測試用例驗證 delete 方法,要保證:刪除之前,存在;刪除過程,沒有異常;刪除之后,為空。只有這三點都通過,才能保證 delete 方法是正確的。下面給出測試用例的代碼:3構(gòu)造測試數(shù)據(jù)在工程的 test-data 目錄下,根據(jù)測試用例類中指定的 sRootId 為一級目錄、方法名為二級目錄的規(guī)則,創(chuàng)建測試數(shù)據(jù)的目錄(目錄已存在,就不需要再創(chuàng)建)。在目錄下創(chuàng)建 data.xml 用于存放測試數(shù)據(jù),data-result.xml 用于存放測試的服務(wù)執(zhí)行的結(jié)果。系統(tǒng)允許有 10 個測試數(shù)據(jù)文件,例如 data.xml,加上從 data1.xml 到 data
13、9.xml,注意要有相對應(yīng)的 data-result.xml。這里構(gòu)造測試數(shù)據(jù) data.xml 如下:wcm61_objectmember/測試方法public void testDelete() throws WCMException/delete 之前,測試是否存在nObjectMemberId = 441; ObjectMember objectMember =ObjectMember.findById(nObjectMemberId);/使用 assertNull 方法自動測試是否存在,如果對象為 null 則輸出錯誤信息assertNotNull(指定 Id 為【+nObjectM
14、emberId+】的對象成員不存在,objectMember);/*執(zhí)行方法 delete,注意測試服務(wù)層的方法中必須包含 doTestMethod(_sMethod)語句,用于指定要測試的方法*/doTestMethod(delete);/delete 之后,測試是否存在objectMember = ObjectMember.findById(nObjectMemberId);/使用 assertNull 方法自動測試是否存在,如果存在則輸出錯誤信息assertNull(delete 方法有問題,沒有將指定 Id 為【+nObjectMemberId+】的對象被刪除,objectMember
15、);wcm61_objectmember;public ObjectMemberServiceProviderTest() super(sRootId, sServiceId);運行該測試用例,即可測試 ObjectMemberServiceProvider.java 中的 delete 方法。2.3 發(fā)布組件的測試用例2.3.1 需要繼承的父類發(fā)布組件的測試用例需要繼承 BaseParserTest 類繼承 BaseParserTest 的原因:只需要構(gòu)造好一些簡單的數(shù)據(jù),直接調(diào)用父對象的方法就能夠?qū)崿F(xiàn)整個的發(fā)布過程,省去了自己構(gòu)造上下文對象、模板片段的時間。常用的方法說明:方法名方法描述參
16、數(shù)名參數(shù)說明parseFolders在指定的站點或欄目下發(fā)布模板片段data參數(shù)類型:字符串?dāng)?shù)組需要發(fā)布的模板片段內(nèi)容,可以指定多個模板片段arFolder參數(shù)類型:整數(shù)數(shù)組當(dāng)前模板片段所依賴的站點或欄目的信息,可以指定多個站點或欄目信息parseContents在指定的文檔下發(fā)布模板片段data參數(shù)類型:字符串?dāng)?shù)組需要發(fā)布的模板片段內(nèi)容,可以指定多個模板片段arContent參數(shù)類型:整數(shù)數(shù)組當(dāng)前模板片段所依賴的文檔信息,可以指定多個文檔信息2.3.2 存放的位置WCM 組的成員,將測試用例放在工程/SourceCode/Java/test 這個 Source folder 下。如下圖所示:
17、其他只需要將測試用例放在工程中的源碼目錄下即可。2.3.3 實例介紹需求測試使用 TRS_Rolls 置標獲取某個欄目下的的文檔(置標的使用方法,請參考TRSWCM6.5 發(fā)布置標手冊)步驟1.創(chuàng)建測試用例的類文件 WCMTagParserRollsTest.java,創(chuàng)建方法與業(yè)務(wù)層的測試用例類文件創(chuàng)建相似,注意修改需要繼承的父類名以及所在的 Source folder。2.撰寫測試用例測試用例的代碼如下:public void testParsePublishTagContext() try / 1 構(gòu)造需要的內(nèi)容/*可以將要的內(nèi)容放在一個文件中,本例中按此方法實現(xiàn);也可以直接將要的內(nèi)容賦
18、值給 pTemplateContent,如下:String pTemplateContent = +n 文檔標題: +;*/String pTemplateContent = CMyFile.readFile(test-data/parser/TRS_ROLLS.txt) ;/ 2 構(gòu)造當(dāng)前要的內(nèi)容所依賴的站點、欄目/*arFolder,用于指定模板片段所依賴的站點或欄目,是一個二維整型數(shù)組。其3.測試數(shù)據(jù)測試數(shù)據(jù)一般放在 test-data 目錄下,根據(jù)測試用例中測試數(shù)據(jù)所在的文件以及路徑,構(gòu)造路徑并創(chuàng)建文件 TRS_ROLLS.txt,文件內(nèi)容如下:說明:在細覽和概覽中,的方法有所不同。例
19、如在測試文檔附件 TRS_Appendix 的用例中,就可以使用下面的方法。代碼如下:public void testParse() throws Exception this.descTest(to test for parse() .);/1.定義測試數(shù)據(jù)String data = , ;/*arContent 用于構(gòu)造當(dāng)前模板片段所依賴的文檔的信息。指定文檔對象的 FolderType、FolderId(可選,默認為當(dāng)前文檔自身所在的欄目)及 ContentType 和 ContentId ,同時可以指定多個,如:101,2, 605, 32, 605, 2*/ arContent = 6
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版翡翠手鐲授權(quán)合同范本3篇
- 中小學(xué)校長職業(yè)聘用協(xié)議示例(2024版)版B版
- 2024版勞動合同烏魯木齊
- 個人對個人汽車租賃合同樣本2024版B版
- 西華師范大學(xué)《工程地質(zhì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版城市公交出租車服務(wù)承包管理合同3篇
- 無錫學(xué)院《水聲學(xué)原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版建筑工程保險條款標準協(xié)議樣本版B版
- 二零二五版合同能源服務(wù)與節(jié)能技術(shù)研發(fā)合作協(xié)議3篇
- 二零二五年酒店客房用品綠色包裝設(shè)計采購合同2篇
- 《血管活性藥物靜脈輸注護理》團體標準解讀
- GB/T 3324-2024木家具通用技術(shù)條件
- NGS二代測序培訓(xùn)
- 《材料合成與制備技術(shù)》課程教學(xué)大綱(材料化學(xué)專業(yè))
- 小紅書食用農(nóng)產(chǎn)品承諾書示例
- 釘釘OA辦公系統(tǒng)操作流程培訓(xùn)
- 新生兒科年度護理質(zhì)控總結(jié)
- GB/T 15934-2024電器附件電線組件和互連電線組件
- 《工貿(mào)企業(yè)有限空間作業(yè)安全規(guī)定》知識培訓(xùn)
- 高層次人才座談會發(fā)言稿
- 垃圾清運公司管理制度(人員、車輛、質(zhì)量監(jiān)督、會計管理制度)
評論
0/150
提交評論