版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、修订序号变更日期变更动作变更内容详情描述版本1.2010-04-25DEV2新建新建本文档1.02.2011-01-12修改1 添加了修改页,以后本文档有修改时请填写修改信息。如何撰写测试用例1 概述WCM 底层的测试用例主要有以下三种:业务层的测试用例,即对 Mgr 的测试。服务层的测试用例,即对 ServiceProvider 的测试。发布组件的测试用例,即对发布置标的测试。本文将通过具体的问题。怎样撰写 WCM 的测试用例以及写测试用例要注意的一些2 如何撰写测试用例2.1 业务层的测试用例2.1.1 需要继承的父类业务层的测试用例需要继承 BaseMgrTest 类继承 BaseMgr
2、Test 的原因:BaseMgrTest 的父类中定义了方法,可以在执试用例时自动启动 WCM。2.1.2 存放的位置WCM 组的成员,将测试用例放在工程/SourceCode/Java/test 这个 Source folder 下。如下图所示:其他只需要将测试用例放在工程中的源码目录下即可。2.1.3 实例介绍需求在 WCM6.5 权限模型中,如果给成员(用户或组织)在某个对象(站点或栏目)上添加了权限(权限值不为 0),那么系统会自动设置成员对该对象可并且可操作,设置成员对对象的路径可注意:。这里使用了器实现设置成员对对象的可可操作以及对路径的可。接口 IObjectMemberMgr.
3、java 是业务逻辑的接口,ObjectMemberMgr.java 实现了这一接口,并且实现上述的器。需要做的就是对这一业务层的器撰写测试用例,下面将介绍如何撰写这一测试用例。步骤1.创建测试用例的类文件在 Eclipse 中打开要测试的类 ObjectMemberMgr.java,新建一个测试用例类,如下:注意修改上面红色框标注的两个部分:Source folder 和 Superclass。如果要选择具体的测试方法,可以点击 next 进入选择页面,也可直接点击 Finish 完成创建。这里,点击 Finish 完成创建。直接2.撰写测试器的测试用例器是否起到了作用,要满足以下三点:首先
4、,在添其次,添最后,添限之前,成员对对象是不可限过程不出异常;的;限以后,成员对对象可可操作,对对象所在的路径可。根据上面的三点分析,开始撰写该测试用例,代码如下: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();/设置操作对象 right.setObject(channel);/设置操作成员 right.setOperator(user);/设置权限值 right.setValue(321); right.save(m
6、_oLoginUser); catch (Exception ex) /将异常信息到日志中logger.error(测试testOnAddRight出现异常!, ex);/输出异常信息,同时输出堆栈信息fail(测试testOnAddRight出现异常!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);/测试数据,包含对象以及对象所在的路径 pTestDataOfUser = new / =用户 ID,对象类型,对象 ID=/
8、4, WebSite.OBJ_TYPE, 3 , 4, Channel.OBJ_TYPE, 44 , 4, Channel.OBJ_TYPE, 45 ;/循环对对象所在路径上节点的可性进试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、务层的测试用例2.2.1 需要继承的父类服务层的测试用例需要继承 BaseAjaxServiceTest 类继承 BaseAjaxServiceTest 类的原因:在 BaseAjaxServiceTest 类中定义了启动 WCM 的方法,并且定义了测试服务中方法的规则、测试数据的以及的输出等。继承了这个类以后,只需构造服务中需要的数据,仅仅实现少量的代码即可。2.2.2 存放的位置WCM 组的成员,将测试用例放在工程/SourceCode/Java/test 这个 Source folder 下。如下图所示:其他只需要将测试用例放在工程中的源码目录下即可。2.2.3 实例介绍需求测试 Obj
11、ectMemberServiceProvider.java 中的 delete 方法步骤1创建测试用例的类文件 ObjectMemberServiceProviderTest.java创建方法与上面业务层的测试用例的类文件相似,这里不再给出。注意修改需要继承的类以及存放的位置。(如果测试类已经存在,则不需要再创建)注意:在 ObjectMemberServiceProviderTest.java 中必须类似下面的代码:/*定义变量:sRootId 表示测试数据存放的一级目录;sServiceId 表示要测试的服务*/ private sic String sRootId = ObjectMem
12、ber,sServiceId =2撰写测试用例验证 delete 方法,要保证:删除之前,存在;删除过程,没有异常;删除之后,为空。只有这三点都通过,才能保证 delete 方法是正确的。下面给出测试用例的代码:3构造测试数据在工程的 test-data 目录下,根据测试用例类中指定的 sRootId 为一级目录、方法名为二级目录的规则,创建测试数据的目录(目录已存在,就不需要再创建)。在目录下创建 data.xml 用于存放测试数据,data-result.xml 用于存放测试的服务执行的结果。系统允许有 10 个测试数据文件,例如 data.xml,加上从 data1.xml 到 data
13、9.xml,注意要有相对应的 data-result.xml。这里构造测试数据 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);/*执行方法 delete,注意测试服务层的方法中必须包含 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 发布组件的测试用例2.3.1 需要继承的父类发布组件的测试用例需要继承 BaseParserTest 类继承 BaseParserTest 的原因:只需要构造好一些简单的数据,直接调用父对象的方法就能够实现整个的发布过程,省去了自己构造上下文对象、模板片段的时间。常用的方法说明:方法名方法描述参
16、数名参数说明parseFolders在指定的站点或栏目下发布模板片段data参数类型:字符串数组需要发布的模板片段内容,可以指定多个模板片段arFolder参数类型:整数数组当前模板片段所依赖的站点或栏目的信息,可以指定多个站点或栏目信息parseContents在指定的文档下发布模板片段data参数类型:字符串数组需要发布的模板片段内容,可以指定多个模板片段arContent参数类型:整数数组当前模板片段所依赖的文档信息,可以指定多个文档信息2.3.2 存放的位置WCM 组的成员,将测试用例放在工程/SourceCode/Java/test 这个 Source folder 下。如下图所示:
17、其他只需要将测试用例放在工程中的源码目录下即可。2.3.3 实例介绍需求测试使用 TRS_Rolls 置标获取某个栏目下的的文档(置标的使用方法,请参考TRSWCM6.5 发布置标手册)步骤1.创建测试用例的类文件 WCMTagParserRollsTest.java,创建方法与业务层的测试用例类文件创建相似,注意修改需要继承的父类名以及所在的 Source folder。2.撰写测试用例测试用例的代码如下:public void testParsePublishTagContext() try / 1 构造需要的内容/*可以将要的内容放在一个文件中,本例中按此方法实现;也可以直接将要的内容赋
18、值给 pTemplateContent,如下:String pTemplateContent = +n 文档标题: +;*/String pTemplateContent = CMyFile.readFile(test-data/parser/TRS_ROLLS.txt) ;/ 2 构造当前要的内容所依赖的站点、栏目/*arFolder,用于指定模板片段所依赖的站点或栏目,是一个二维整型数组。其3.测试数据测试数据一般放在 test-data 目录下,根据测试用例中测试数据所在的文件以及路径,构造路径并创建文件 TRS_ROLLS.txt,文件内容如下:说明:在细览和概览中,的方法有所不同。例
19、如在测试文档附件 TRS_Appendix 的用例中,就可以使用下面的方法。代码如下:public void testParse() throws Exception this.descTest(to test for parse() .);/1.定义测试数据String data = , ;/*arContent 用于构造当前模板片段所依赖的文档的信息。指定文档对象的 FolderType、FolderId(可选,默认为当前文档自身所在的栏目)及 ContentType 和 ContentId ,同时可以指定多个,如:101,2, 605, 32, 605, 2*/ arContent = 6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 瑜伽产业生态圈构建-洞察分析
- 水电安装工程安全管理-洞察分析
- 医疗健康大数据标准体系-洞察分析
- 温室气体排放与气候变化关系-洞察分析
- ICU护士职责总结
- 《对坐标曲面积分》课件
- 办公室工作安全与健康教育研讨会
- 办公环境下的创新设计理念
- 从小抓起家庭教育对孩子未来竞争力的影响
- 创新型家纺产品设计实践与市场分析
- 《自动化仪表安装、调试施工监理实施细则》
- 街舞简介课件教学课件
- 小红书食用农产品承诺书示例
- GB/T 15934-2024电器附件电线组件和互连电线组件
- 2023上半年四川公务员考试申论试题(省市卷)
- 施工临时占人行道施工方案
- 文学与伦理学习通超星期末考试答案章节答案2024年
- 动词不定式(专项练习)(解析版)
- DB34T 4912-2024二手新能源汽车鉴定评估规范
- 2024-2030年中国工控机行业需求状况及发展趋势分析研究报告
- 中医医案学习方法:医案的分类
评论
0/150
提交评论