软件开发JUNIT单元测试学习
软件单元测试实验报告

软件单元测试实验报告软件单元测试实验报告引言软件开发过程中,单元测试是非常重要的一环。
通过对软件的各个组件进行独立测试,可以发现和修复潜在的问题,确保软件的质量和稳定性。
本实验旨在通过实际操作,掌握单元测试的基本概念和技巧,并对不同类型的软件进行测试。
实验目的本实验的主要目的是:1.了解单元测试的概念和重要性;2.掌握单元测试的基本流程和方法;3.通过实际操作,熟悉单元测试工具的使用。
实验环境本实验使用的软件开发环境为Java,并使用JUnit作为单元测试框架。
实验步骤1. 确定测试需求:在进行单元测试之前,首先需要明确测试的目标和需求。
根据软件的功能和设计文档,确定需要测试的各个模块和函数。
2. 编写测试用例:根据测试需求,编写相应的测试用例。
测试用例应该覆盖各种可能的输入和边界条件,以确保软件在各种情况下都能正确运行。
3. 编写被测代码:根据测试用例,编写被测代码。
被测代码应该按照软件设计的要求进行实现,确保满足功能和性能的需求。
4. 执行单元测试:使用JUnit框架执行单元测试。
JUnit提供了一系列的断言方法和测试注解,可以方便地编写和执行测试代码。
5. 分析测试结果:根据测试结果,分析被测代码的质量和稳定性。
如果测试通过,说明被测代码符合预期;如果测试失败,需要进一步调试和修复问题。
实验结果通过本次实验,我们成功完成了对软件的单元测试。
通过编写测试用例和执行单元测试,我们发现了一些潜在的问题,并及时修复了这些问题。
经过多次测试,被测代码在各种情况下都能正确运行,并且性能稳定。
实验总结本次实验使我深入了解了单元测试的重要性和基本流程。
通过实际操作,我掌握了JUnit框架的使用方法,并学会了编写测试用例和执行单元测试。
通过单元测试,我们可以及早发现和修复软件中的问题,提高软件的质量和可靠性。
通过本次实验,我还学会了如何编写高质量的测试用例。
测试用例应该覆盖各种可能的输入和边界条件,以确保软件在各种情况下都能正确运行。
JUnit 3 单元测试

Junit3单元测试笔记1.JUnit是每一个程序员必须掌握的技能之一。
2.使用JUnit的最佳实践:1)新建一个test的source folder,用于存放测试类源代码。
2)目标类与测试类应该处于同一个目录下,这样测试类中就不必导入源代码所在的包,因为他们处于同一目录下。
3)测试类命名规则:假如目标类是Calculator,那么测试类是CalculatorTest。
3.JUnit口号:keep the bar green to keep the code clean.保持横条是绿色的保持代码是整洁的4.我的名言:No reflection, No most frameworks.没有反射,没有太多的数据结构。
5.JUnit:单元测试不是为了证明您是对的,而是为了证明您的代码没有错误。
6.测试用例(Test Case)是单元测试的一个很重要的方面。
7.单元测试主要是用来判断程序运行的结果与自己期望的结果是否一致。
8.在JUnit3.8中,测试方法必须满足如下规则:1)方法必须是public。
2)方法必须是void。
没有返回值。
3)方法没有参数。
4)方法名必须是以Test开头。
9.测试用例之间要保持完全的独立性,不允许任何的依赖关系。
10.我们不能依赖与测试方法的执行顺序。
11.DRY(Don’t Repeat Yourself)。
不要重复你的代码。
在控制台中如下:每一个方法中都有:范例1:求int类型的数组中最大值。
除了使用JUnit方式进行测试之外,还可以在main方法中测试。
测试CalculatorTest,点击13.测试之前是什么状态,测试执行之后就应该是什么状态。
而不应该由于测试的原因导致状态发生了变化。
范例2:删除某一个目录的所有文件1)修改方法访问修饰符,将private修改为default或者是public。
(不推荐使用)。
2)使用反射在测试类中调用目标类的私有方法。
(推荐使用)。
使用JUnit进行代码测试

使用JUnit进行代码测试在软件开发过程中,代码测试是一个关键的环节,它可以帮助我们发现代码中存在的问题,并及时修复,从而提高软件的质量。
然而,传统的手动测试方式需要耗费大量的时间和人力,而使用JUnit进行代码测试则可以自动化测试过程,提高测试效率。
JUnit是基于Java语言的一个开源测试框架,它主要用于编写和运行单元测试。
在JUnit中,我们可以通过编写测试用例对程序的各个部分进行测试,从而验证代码的正确性和鲁棒性。
下面,我们来看一下如何使用JUnit进行代码测试。
1. 添加JUnit库首先,我们需要在项目中添加JUnit库。
在Eclipse中,可以通过如下步骤添加JUnit库:1) 右键单击项目名称,选择“Build Path” -> “Configure Build Path”。
2) 选择“Libraries”选项卡,点击“Add Library”按钮。
3) 选择“JUnit”库,点击“Next”按钮。
4) 选择JUnit版本,点击“Finish”按钮。
2. 编写测试用例在JUnit中,每个测试用例都是由一个或多个测试方法组成的。
测试方法以@Test注解标记,表示这是一个测试方法。
下面是一个简单的测试用例:import static org.junit.Assert.assertEquals;import org.junit.Test;public class MyTest {@Testpublic void testAdd() {int a = 1;int b = 2;assertEquals(3, a + b);}}在测试用例中,我们可以使用JUnit提供的断言方法进行测试,比如assertEquals()方法用于判断实际值是否等于期望值。
3. 运行测试用例当我们编写好测试用例后,就可以运行测试用例了。
在Eclipse 中,可以通过右键单击测试用例所在类的名称,选择“Run As” -> “JUnit Test”来运行测试用例。
软件测试需要学什么语言

软件测试需要学习什么语言引言在当今的软件开发行业中,测试是确保软件质量的重要环节。
软件测试涉及到多种技术和工具,其中语言的选择对于测试人员来说是至关重要的。
本文将探讨在软件测试中学习哪些语言对测试人员来说是有益的。
1. JavaJava是一种广泛使用的编程语言,特别适合于构建和测试大型软件系统。
学习Java语言对于软件测试人员来说是非常重要的,因为许多测试工具和框架都是用Java编写的。
以下是一些与Java相关的测试工具和框架:•JUnit:这是Java中最常用的单元测试框架之一,用于编写和运行单元测试。
•TestNG:可替代JUnit的测试框架,提供更多的测试功能和灵活性。
•Selenium:这是一个用于自动化Web应用程序测试的工具,支持Java语言编写测试脚本。
•Appium:一种用于测试移动应用程序的自动化框架,也支持Java语言编写脚本。
2. PythonPython是一种简单易学的编程语言,广泛应用于软件测试领域。
它以其简洁的语法和丰富的测试库而闻名,成为软件测试人员的首选语言之一。
以下是一些与Python相关的测试工具和框架:•pytest:这是Python中最受欢迎的测试框架之一,用于编写各种类型的自动化测试。
•behave:一个用于行为驱动开发(BDD)的测试框架,使用自然语言编写测试场景。
•Robot Framework:一种通用的自动化测试框架,支持关键字驱动和数据驱动的测试方法。
•Appium-Python-Client:Appium的Python客户端库,用于编写移动应用程序测试脚本。
3. CC#是一种由微软开发的专为.NET平台设计的编程语言,用于构建Windows桌面和Web应用程序。
在软件测试领域,C#在一些特定的测试工具和框架中被广泛使用。
以下是一些与C#相关的测试工具和框架:•NUnit:与JUnit类似的C#测试框架,用于编写和运行单元测试。
•SpecFlow:一个用于BDD的测试框架,使用Gherkin语言编写测试场景。
junit测试实验报告

junit测试实验报告
《Junit测试实验报告》
在软件开发过程中,测试是非常重要的一环。
而Junit作为一个广泛应用的Java 单元测试框架,可以帮助开发人员快速、方便地进行测试。
本文将通过一个实验报告,介绍Junit测试的基本原理和使用方法。
实验目的:
1. 了解Junit测试框架的基本原理和使用方法
2. 掌握Junit测试的常用注解和断言方法
3. 通过实际示例,展示Junit测试的实际应用
实验内容:
本次实验将以一个简单的Java类为例,演示如何使用Junit进行单元测试。
该Java类包含一个简单的方法,用于计算两个整数的和。
实验步骤:
1. 导入Junit测试框架
2. 创建一个测试类,并在该类中编写测试方法
3. 使用Junit的注解和断言方法,对目标方法进行测试
4. 运行测试,并查看测试结果
实验结果:
经过测试,目标方法运行正常,测试结果符合预期。
实验总结:
通过本次实验,我们了解了Junit测试框架的基本原理和使用方法。
Junit提供了丰富的注解和断言方法,可以帮助开发人员编写简洁、高效的测试代码。
通
过Junit测试,可以有效地提高软件质量,减少bug的产生。
在实际开发中,我们应该充分利用Junit测试框架,编写完善的测试用例,保证软件的稳定性和可靠性。
同时,我们也应该不断学习和探索,掌握更多的测试技巧和方法,为软件开发贡献自己的力量。
总之,Junit测试是软件开发过程中不可或缺的一部分,希望通过本次实验,能够对Junit测试有更深入的了解,为我们的软件开发工作带来更大的帮助。
Demo002IDEA中Junit单元测试的使用(初级篇)

Demo002IDEA 中Junit 单元测试的使⽤(初级篇)推荐JUnit 视频教程:。
1.基本理论1.1 单元测试单元测试⼜称模块测试,属于⽩盒测试,是最⼩单位的测试。
模块分为程序模块和功能模块。
功能模块指实现了⼀个完整功能的模块(单元),⼀个完整的程序单元具备输⼊、加⼯和输出三个环节。
⽽且每个程序单元都应该有正规的规格说明,使之对其输⼊、加⼯和输出的关系做出名明确的描述。
JUnit 是⼀个回归测试框架(regression testing framework )。
Junit 测试是程序员测试,即所谓⽩盒测试,因为程序员知道被测试的如何(How )完成功能和完成什么样(What )的功能。
Junit 是⼀套框架,继承TestCase 类,就可以⽤Junit 进⾏⾃动测试了。
1.2 什么是Junit①JUnit 是⽤于编写可复⽤测试集的简单框架,是xUnit 的⼀个⼦集。
xUnit 是⼀套基于测试驱动开发的测试框架,有PythonUnit 、CppUnit 、JUnit 等。
②Junit 测试是程序员测试,即所谓⽩盒测试,因为程序员知道被测试的软件如何(How )完成功能和完成什么样(What )的功能。
③多数Java 的开发环境都已经集成了JUnit 作为单元测试的⼯具,⽐如IDEA ,Eclipse 等等。
④JUnit 官⽹:1.3 为什么要使⽤单元测试①测试框架可以帮助我们对编写的程序进⾏有⽬的地测试,帮助我们最⼤限度地避免代码中的bug ,以保证系统的正确性和稳定性。
②很多⼈对⾃⼰写的代码,测试时就简单写main ,然后sysout 输出控制台观察结果。
这样⾮常枯燥繁琐,不规范。
缺点:测试⽅法不能⼀起运⾏,测试结果要程序猿⾃⼰观察才可以判断程序逻辑是否正确。
③JUnit 的断⾔机制,可以直接将我们的预期结果和程序运⾏的结果进⾏⼀个⽐对,确保对结果的可预知性。
1.4 测试覆盖评测测试过程中已经执⾏的代码的多少。
Junit单元测试-实验报告

软件工程与计算Ⅰ实验报告实验名称: Junit单元测试实验分组号:实验人:陈燕珠班级: H13软件工程学号: _实验指导教师:陈国明实验场地:花都校区实验楼709实验时间: 2015、6、9成绩:实验四 Junit单元测试一、实验目的1.掌握白盒测试方法,并按单元测试的要求设计测试用例。
2.能熟练应用junit测试工具进行单元测试。
3.进行代码覆盖检查。
二、实验要求掌握系统测试的基本原理,按实验内容及步骤完成操作,完成实验报告,所有实验环节均由每位学生独立完成,严禁抄袭他人实验结果。
根据白盒法设计测试用例,并撰写单元测试计划书。
根据每个测试用例,编写基本Junit的单元测试脚本。
生成html格式的代码覆盖测试报告。
三、实验环境主流PC机一套,windows操作系统eclipse开发平台。
四、原理知识1.测试基本方法黑盒测试和白盒测试(1)黑盒测试(Black_Box testing)黑盒测试把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下、注重于测试软件的功能性要求,测试者在程序接口处进行测试,只检查程序功能是否按照规格说明书的规定正常使用,程序是否能接收输入数据而产生正确的输出信息,并且保持数据库和文件的完整性黑盒测试通常能发现以下几类错误:1、功能不对或遗漏2、界面错误3、数据结构或外部数据库访问错误4、性能错误5、初始化和终止错误采用黑盒技术设计测试用例的方法1、等价类划分2、边值分析法3、因果图4、猜错5、随机测试图1:白盒测试(2)白盒测试(White_Box testing)盒测试主要用于检查程序的内部结构、逻辑、循环和路径。
常用的白盒测试用例设计方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、符号测试法等。
其中最主要的方法就是逻辑覆盖法。
1、语句覆盖2、判定覆盖3、条件覆盖4、条件判定覆盖5、多条件覆盖图2:黑盒测试手工测试和自动化测试(1)手工测试手工测试有其不可替代的地方,因为人具有很强的判断能力,而工具没有,所以手工测试的不可替代性体现在以下几个方面:①测试用例的设计:测试人员的经验和对错误的判断能力是工具不可替代的;②界面和用户体验测试:人类的审美观和心理体验是工具不可模拟的;③正确性的检查:人们对是非的判断、逻辑推理能力是工具不具备的。
java编程之单元测试(Junit)实例分析(附实例源码)

java编程之单元测试(Junit)实例分析(附实例源码)本⽂实例讲述了java编程之单元测试。
分享给⼤家供⼤家参考,具体如下:完整实例代码代码点击此处。
在有些时候,我们需要对我们⾃⼰编写的代码进⾏单元测试(好处是,减少后期维护的精⼒和费⽤),这是⼀些最基本的模块测试。
当然,在进⾏单元测试的同时也必然得清楚我们测试的代码的内部逻辑实现,这样在测试的时候才能清楚地将我们希望代码逻辑实现得到的结果和测试实际得到的结果进⾏验证对⽐。
废话少说,上代码:⾸先创建⼀个java⼯程,在⼯程中创建⼀个被单元测试的Student数据类,如下:package com.phicomme.hu;public class Student{private String name;private String sex;private int high;private int age;private String school;public Student(String name, String sex ,int high, int age, String school){ = name;this.sex = sex;this.high = high;this.age = age;this.school = school;}public String getName(){return name;}public void setName(String name){ = name;}public String getSex(){return sex;}public void setSex(String sex){this.sex = sex;}public int getHigh(){return high;}public void setHigh(int high){this.high = high;}public int getAge(){return age;}public boolean setAge(int age){if (age >25){return false;}else{this.age = age;return true;}}public String getSchool(){return school;}public void setSchool(String school){this.school = school;}}在eclipse下单元测试这个类:⾸先导⼊Junit包:选中java⼯程,点击⿏标右键--->选择properties---->在窗⼝中选Java Build Path---->在右侧点击Add Library---->在弹出的窗⼝列表中选中Junit---->下⼀步----->Junit 4(我⽤的是Junit 4)---->finish这样Junit 4包就导完了,接下来就是创建测试类:将测试类和被测试类放在不同的包中(也可以放在同⼀个包中,此处只是为了区别),代码如下:测试类1:package com.phicomme.test;import com.phicomme.hu.Student;import junit.framework.TestCase;public class StudentTest01 extends TestCase{Student testStudent;//此⽅法在执⾏每⼀个测试⽅法之前(测试⽤例)之前调⽤@Overrideprotected void setUp() throws Exception{// TODO Auto-generated method stubsuper.setUp();testStudent = new Student("djm", "boy", 178, 24, "华东政法");System.out.println("setUp()");}//此⽅法在执⾏每⼀个测试⽅法之后调⽤@Overrideprotected void tearDown() throws Exception{// TODO Auto-generated method stubsuper.tearDown();System.out.println("tearDown()");}//测试⽤例,测试Person对象的getSex()⽅法public void testGetSex(){assertEquals("boy", testStudent.getSex());System.out.println("testGetSex()");}//测试Person对象的getAge()⽅法public void testGetAge(){assertEquals(24, testStudent.getAge());System.out.println("testGetAge()");}}测试类2:package com.phicomme.test;import junit.framework.TestCase;import com.phicomme.hu.Student;public class StudentTest extends TestCase{private Student testStudent;@Overrideprotected void setUp() throws Exception{// TODO Auto-generated method stubsuper.setUp();testStudent = new Student("steven_hu", "boy", 170 , 23, "上海理⼯");}@Overrideprotected void tearDown() throws Exception{// TODO Auto-generated method stubsuper.tearDown();}public void testSetage(){assertTrue(testStudent.setAge(21));}public void testGetSchool(){//预期值和实际值不⼀样,测试时出现失败(Failure)assertEquals("南昌⼤学", testStudent.getSchool());}public void testGetName(){assertEquals("hdy", testStudent.getName());}}当然,如果同时需要⼀起测试以上这两个测试类,可以通过TestSuite类实现,它相当于是⼀个套件,可以把所有测试类添进来⼀起运⾏测试;代码如下:package com.phicomme.test;import com.phicomme.hu.StudentTest02;import junit.framework.Test;import junit.framework.TestSuite;public class AllTest{//static PersonTest p = new PersonTest();//static PersonTest p1 = new PersonTest();public static Test suite(){TestSuite suite = new TestSuite("Test for com.phicomme.test");//suite.addTest(p);//suite.addTest(p1);suite.addTestSuite(StudentTest.class);suite.addTestSuite(StudentTest01.class);return suite;}}最后,分别测试以上三个类(选中需要测试的类---->⿏标右键---->Run As---->Junit Test):StudentTest类的测试结果图:StudentTest01类的测试结果图:AllTest类的测试结果图:有关java的测试就讲到这⾥,希望对⼤家有帮助,有时间也会接着讲讲有关android的单元测试,和在⼿机上实现编写⼀个UI 界⾯替代eclipse如上图中的测试界⾯;希望本⽂所述对⼤家Java程序设计有所帮助。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
的“New”对话框中选 择”Java->JUnit”,下的TestCase 或TestSuite,就进 入“New JUnit TestCase”对话框 2、在“New JUnit TestCase”对话框填写相应的栏目,主要有Name(测试 用例名),SuperClass(测试的超类一般是默认的 junit.framework.TestCase),Class Under Test(被测试的类),Source Folder(测试用例保存的目录),Package(测试用例包名),及是否自 动生成main,setUp,tearDown方法。 3、如果点击下面的”Next>”按钮,你还可以直接勾选你想测试的被测 试类的方法,Eclipse将自动生成与被选方法相应的测试方法,点 击“Fishish”按钮后一个测试用例就创建好了。 4、编写完成你的测试用例后,点击“Run”按钮就可以看到运行结果了。 3.8、JUnit的扩展应用 以下罗列了些JUnit的扩展应用: JUnit + HttpUnit=WEB功能测试工具 JUnit + hansel =代码覆盖测试工具 JUnit + abbot =界面自动回放测试工具 JUnit + dbunit =数据库测试工具 JUnit + junitperf=性能测试工具 3.9、一些使用JUnit经验 不要用TestCase的构造函数初始化,而要用setUp()和tearDown()方法。 不要依赖或假定测试运行的顺序,因为JUnit利用Vector保存测试方法。 所以不同的平台会按不同的顺序从Vector中取出测试方法。 避免编写有副作用的TestCase。例如:如果随后的测试依赖于某些特定 的交易数据,就不要提交交易数据。简单的回滚就可以了。 当继承一个测试类时,记得调用父类的setUp()和tearDown()方法。 将测试代码和工作代码放在一起,一边同步编译和更新。 测试类和测试方法应该有一致的命名方案。如在工作类名前加上test从 而形成测试类名。 确保测试与时间无关,不要依赖使用过期的数据进行测试。导致在随后 的维护过程中很难重现测试。 如果你编写的软件面向国际市场,编写测试时要考虑国际化的因素。不 要仅用母语的Locale进行测试。 尽可能地利用JUnit提供地assert/fail方法以及异常处理的方法,可以使代 码更为简洁。 测试要尽可能地小,执行速度快。
B、是使测试单元保持持久性。 C、是可以利用既有的测试来编写相关的测试。 3.2、JUnit的特征 A、使用断言方法判断期望值和实际值差异,返回Boolean值。 B、测试驱动设备使用共同的初始化变量或者实例。 C、测试包结构便于组织和集成运行。 D、支持图型交互模式和文本交互模式。 3.3、JUnit框架组成 A、对测试目标进行测试的方法与过程集合,可称为测试用例 (TestCase)。 B、测试用例的集合,可容纳多个测试用例(TestCase),将其称作测试包 (TestSuite)。 C、测试结果的描述与记录。(TestResult) 。 D、测试过程中的事件监听者(TestListener)。 E、每一个测试方法所发生的与预期不一致状况的描述,称其测试失败 元素(TestFailure) F、JUnit Framework中的出错异常(AssertionFailedError)。 JUnit框架是一个典型的Composite模式:TestSuite可以容纳任何派生自 Test的对象;当调用TestSuite对象的run()方法是,会遍历自己容纳的对 象,逐个调用它们的run()方法。(可参考《程序员》2003-6期)。 3.4、JUnit的安装和配置 JUnit安装并将Junit压缩包解 压到一个物理目录中(例如C:\Junit3.8.1)。 记录Junit.jar文件所在目录名(例如C:\Junit3.8.1\Junit.jar)。 进入操作系统(以Windows2000操作系统为准),按照次序点击“开 始 设置 控制面板”。 在控制面板选项中选择“系统”,点击“环境变量”,在“系统变量”的“变 量”列表框中选择“CLASS-PATH”关键字(不区分大小写),如果该关 键字不存在则添加。 双击“CLASS-PATH”关键字添加字符串“C:\Junit3.8.1\Junti.jar”(注意,如 果已有别的字符串请在该字符串的字符结尾加上分号“;”),这样确定 修改后Junit就可以在集成环境中应用了。 对于IDE环境,对于需要用到的JUnit的项目增加到lib中,其设置不同的 IDE有不同的设置 。 3.5、JUnit中常用的接口和类 Test接口——运行测试和收集测试结果
多个测试,而TestSuit负责收集这些测试,使我们可以在一个测试中, 完成全部的对被测类的多个测试。 TestSuite类实现了Test接口,且可以包含其它的TestSuites。它可以处理 加入Test时的所有抛出的异常。 TestSuite处理测试用例有6个规约(否则会被拒绝执行测试) A 测试用例必须是公有类(Public) B 测试用例必须继承与TestCase类 C 测试用例的测试方法必须是公有的( Public ) D 测试用例的测试方法必须被声明为Void E 测试用例中测试方法的前置名词必须是test F 测试用例中测试方法误任何传递参数 n TestResult结果类和其它类与接口 TestResult结果类集合了任意测试累加结果,通过TestResult实例传递个 每个测试的Run()方法。TestResult在执行TestCase是如果失败会异常 抛出 TestListener接口是个事件监听规约,可供TestRunner类使用。它通知 listener的对象相关事件,方法包括测试开始 startTest(Test test),测试结 束endTest(Test test),错误,增加异常addError(Test test,Throwable t)和增加 失败addFailure(Test test,AssertionFailedError t) TestFailure失败类是个“失败”状况的收集类,解释每次测试执行过程中 出现的异常情况。其toString()方法返回“失败”状况的简要描述 3.6、JUnit一个实例 在控制台中简单的范例如下: 1、写个待测试的Triangle类,创建一个TestCase的子类ExampleTest: 2、ExampleTest中写一个或多个测试方法,断言期望的结果(注意:以 test作为待测试的方法的开头,这样这些方法可以被自动找到并被测试) 3、ExampleTest中写一个suite()方法,它会使用反射动态的创建一个包 含所有的testXxxx方法的测试套件: 4、ExampleTest可以写setUp()、tearDown()方法,以便于在测试时初始 化或销毁测试所需的所有变量和实例。(不是必须的) 5、写一个main()方法以文本运行器或其它GUI的方式方便的运行测试 6、编译ExampleTest,执行测试。 3.7、Eclipse中JUnit的使用 Eclipse自带了一个JUnit的插件,不用安装就可以在你的项目中开始测试 相关的类,并且可以调试你的测试用例和被测试类。 使用步骤如下: 1、新建一个测试用例,点击“File->New->Other…菜单项,在弹出
Test接口使用了Composite设计模式,是单独测试用例 (TestCase),聚 合测试模式(TestSuite)及测试扩展(TestDecorator)的共同接口。 它的public int countTestCases()方法,它来统计这次测试有多少个 TestCase,另外一个方法就是public void run( TestResult ), TestResult是实例接受测试结果, run方法执行本次测试。 TestCase抽象类——定义测试中固定方法 TestCase是Test接口的抽象实现,(不能被实例化,只能被继承)其构 造函数TestCase(string name)根据输入的测试名称name创建一个测试实 例。由于每一个TestCase在创建时都要有一个名称,若某测试失败了, 便可识别出是哪个测试失 败。 TestCase类中包含的setUp()、tearDown()方法。setUp()方法集中初始化 测试所需的所有变量和实例,并且在依次调用测 试类中的每个测试方 法之前再次执行setUp()方法。tearDown()方法则是在每个测试方法之 后,释放测试程序方法中引用的变量和实例。 开发人员编写测试用例时,只需继承TestCase,来完成run方法即可,然 后JUnit获得测试用例,执行它的run方法,把测试结果记录在TestResult 之中。 Assert静态类——一系列断言方法的集合 Assert包含了一组静态的测试方法,用于期望值和实际值比对是否正 确,即测试失败,Assert类就会抛出一个 AssertionFailedError异常, JUnit测试框架将这种错误归入Failes并加以记录,同时标志为未通过测 试。如果该类方法中指定一 个String类型的传参则该参数将被做为 AssertionFailedError异常的标识信息,告诉测试人员改异常的详细信 息。 JUnit 提供了6大类31组断言方法,包括基础断言、数字断言、字符断 言、布尔断言、对象断言。 其中assertEquals(Object expcted,Object actual)内部逻辑判断使用equals() 方法,这表明断言两个实例的内部哈希值是否相等时,最好使用该方法 对相应类实例的值进行比较。而 assertSame(Object expected,Object actual)内部逻辑判断使用了Java运算符“==”,这表明该断言判断两个实 例是否来自于同一个引用(Reference),最好使用该方法对不同 类的 实例的值进行比对。asserEquals(String message,String expected,String actual)该方法对两个字符串进行逻辑比对,如果不匹配则显示着两个字 符串有差异的地方。ComparisonFailure类提供两个字符串的比 对,不匹 配则给出详细的差异字符。 TestSuite测试包类——多个测试的组合 TestSuite类负责组装多个Test Cases。待测得类中可能包括了对被测类的