版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信息工程学院单元测试,被测程序功能,1) 输入一个以逗号(或其它字符)分隔的字符串,程序将解析该字符串并得到一个数组。以同样的方式输入第二个字符串,并解析成数组。 2) 对输入的字符分隔的每一个值进行判断,必须为数值类型,否则程序将不做任何处理。 3) 如果输入合法,将按如下顺序进行判断: a) 如果数组长度为零,将直接输出信息:“结果: 数组长度为零.” b) 如果两个数组长度不相等,将直接输出信息:“结果: 数组长度不一致.” c) 如果两个数组不经过任何排序,自然相等,输出信息为:“结果: 数组相同.” d) 如果两个数组经过排序后比较,是相等的,输出信息为:“结果: 数组排序后相同.”
2、 e) 如果两个数组经过排序后比较,不相等,输出信息为:“结果: 数组不同.” 4) 程序不需要专门设计GUI界面,直接使用命令行即可。,程序概要设计,程序概要设计,1) MainRun:程序运行主入口,用于用户输入数据和调用CompareHandle.mainCompare(1,2). 2) StringHandle:字符串处理类,用于输入数据,解析字符串成数组,判断是否为数值. 3) CompareHandle:程序比较主类,用于比较数组中的值及判断各种可能的情况. 4) ArrayHandle:数组处理类,用于数组排序和数组值的比较.,开源测试代码,建一个包:com.learn.test
3、 建一个测试类:StringHandleTest 用于测试的代码通常叫做Test Fixture,使用JUNIT测试,JUnit 是针对 Java 语言的一个单元测试框架,它被认为是迄今为止所开发的最重要的第三方 Java 库。 JUnit 的优点是整个测试过程无需人的参与,无需分析和判断最终测试结果是否正确,而且可以很容易地一次性运行多个测试 JUnit 的出现促进了测试的盛行,它使得 Java 代码更健壮,更可靠,Bug 比以前更少。 结合JUnit和JMock两个框架的使用,可以快速开发测试代码,甚至达到TDD所推崇的测试先行的目的,更好地做到敏捷开发,敏捷测试。 ,使用JUNIT测试,
4、在使用JUnit 3的方法规则书写测试用例时,必须满足两个基本要求: 1) 测试类必须继承自junit.framework.TestCase类 2) 每个测试方法名称必须以test开头,通常我们以test_后面跟上被测方法名称来命名测试方法。 根据JUnit 4的规则,我们可以看到如下一些变化: 1) 测试类不需要继承TestCase,灵活了很多。 2) 测试方法名称不需要以test开头,只需要加上Test注解指明该方法是JUnit测试方法即可。,使用JUNIT测试-理解JUnit断言机制,junit.framework.Assert-兼容JUnit 3而刻意保留的 org.junit.Ass
5、ert-JUnit 4新增的 assertArrayEquals(Object expecteds, Object actuals) 用法:比较两个数组是否相同,相同的条件为:长度相同,相同下标的值也相同。 assertTrue(boolean condition) 用法:判断参数是否为布尔“真”,为真则通过,否则失败。 assertEquals(Object expected, Object actual) 用法:判断两个参数值是否相等,支持所有基本数据类型的比较。 P26,使用JUNIT测试-理解JUnit各类注解,1) BeforeClass: 测试类运行前准备环境,一个测试类在运行测试
6、方法之前运行一次。 2) AfterClass: 测试类运行后清除环境,一个测试类在运行完所有测试方法后运行一次。 3) Before: 每个测试用例运行前运行,有多少个测试用例,就会运行多少次。 4) After: 每个测试用例运行后运行,有多少个测试用例,就会运行多少次。 5) Test: 具体的测试用例。 6) Ignore: 该测试用例将被忽略。 7) Rule: 定义一些规则,如超时时间,异常捕获等。,使用JUNIT测试-理解JUnit各类注解,例子1 BeforeClass和AfterClass,其特点为在一个测试类中永远只会被运行一次。 Before和After,其特点为每一个测
7、试用例都会运行一次。,使用JUNIT测试-理解JUnit各类注解,例子1 BeforeClass和AfterClass,其特点为在一个测试类中永远只会被运行一次。 Before和After,其特点为每一个测试用例都会运行一次。,使用JUNIT测试-理解Junit参数化,1、在类外加载参数化生成器 RunWith(Parameterized.class) / 使用参数化运行器 2、然后为测试方法添加属性及构造函数(构造函数需要和测试类名相同) 3、编写数据初始化的方法 Parameters / 指定该方法为参数生成器 SuppressWarnings(unchecked) / 忽略警告信息 pu
8、blic static Collection getParamters() ,10/13/2020,RunWith(Parameterized.class) / 使用参数化运行器 public class addjunit4 public int x; public int y; public int result; / 构造函数 public addjunit4(int x,int y, int result) this.x = x; this.y = y; this.result=result; Parameters / 指定该方法为参数生成器 SuppressWarnings(unche
9、cked) / 忽略警告信息 public static Collection getParamters() / 输入值与结果必须与构造函数定义一一对应 Object object = 2,1,1, 2,3,-1,3,7,-4; return Arrays.asList(object); Test public void testAdd() compute cp=new compute(); int cpresult; cpresult=cp.add(this.x, this.y); assertEquals(this.result, cpresult); /fail(Not yet impl
10、emented); ,10/13/2020,isNumber进行参数化改造 splitString进行参数化改造,10/13/2020,使用JUNIT测试-理解Junit参数化,使用JUNIT测试-理解Junit测试集,Suite可以把多个测试类放在一起共同执行 Junit3中的测试集的使用 Junit4中的测试集的使用,10/13/2020,Junit3中的测试集的使用,public static Test suite() TestSuite suite=new TestSuite(); /执行测试类TestLargest1中的方法testDups suite.addTest(new Tes
11、tLargest1(testDups); /执行测试类TestLargest1中所有的方法 / suite.addTestSuite(TestLargest1.class); /执行测试类TestLargest1中指定的测试方法 suite.addTest(TestLargest1.suite(); return suite; ,10/13/2020,Junit4中的测试集的使用,package com.learn.testing; import org.junit.runner.RunWith; import org.junit.runners.Suite; RunWith(Suite.cl
12、ass) Suite.SuiteClasses( StringHandleJUnit4.class, StringHandleParam.class, StringHandleAnnotation.class ) public class CompareTestSuite / Do Nothing ,10/13/2020,MOCK对象的使用-理解驱动和桩,Mock对象使用范畴: 1) 真实对象具有不可确定的行为,产生不可预测的效果,(如:股票行情,天气预报) 2) 真实对象很难被创建的 3) 真实对象的某些行为很难被触发 4) 真实对象实际上还不存在的(和其他开发小组或者和新的硬件打交道) 等等.,10/13/2020,使用Mock对象测试的关键步骤: 1) 使用一个接口来描述这个对象 2) 在产品代码中实现这个接口 3) 在测试代码中实现这个接口 在被测试代码中只是通过接口来引
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年体育教师安全责任书
- RTK精度提升-洞察与解读
- 2026年垃圾场安全生产教育培训
- 2026年中秋节综合实践活动案例分析
- 人工智能在按摩设备健康管理中的应用-洞察与解读
- 基于深度学习的时序数据特征提取方法-洞察与解读
- 复方氨基比林与心血管药物联合用药的安全性评价-洞察与解读
- 多平台协同威胁下安全威胁的检测与防御策略-洞察与解读
- Gamification在垃圾分类教育中的应用-洞察与解读
- 2026年建材类试验员测试题及答案
- 2026年广东广州市部分学校中考化学模拟试卷(含答案)
- 2026河南郑州商标审查协作中心招聘7人备考题库有答案详解
- (2025年)经济学基础期末试卷及答案
- 2026全国一卷语文真题(回忆版)
- 河南省安阳市2026届九年级中考二模历史试卷(有答案)
- 2026年教师礼仪测试题及答案
- 2026-2030中国油气管道工程建设行业现状调查与投资价值评估研究报告
- 检测实验室管理与质量控制手册
- 新疆建筑消能减震应用技术规程
- 六年级上册秋季奥数培优讲义-6-10-行程综合4-讲义-教师
- 传统二十四节气芒种节气介绍主题班会
评论
0/150
提交评论