JUnit单元测试入门简介+实例
- 格式:pdf
- 大小:182.94 KB
- 文档页数:11
Junit4单元测试框架的常⽤⽅法介绍Junit 介绍:Junit是⼀套框架(⽤于JAVA语⾔),由 Erich Gamma 和 Kent Beck 编写的⼀个回归测试框架(regression testing framework),即⽤于⽩盒测试。
本⽂介绍的内容:1 Junit Myeclipse测试类的⽣成2 JUnit 4 常⽤的⼏个annotation 介绍与使⽤ (@Before @After @Test @Ignore @BeforeClass @AfterClass)3 常⽤的断⾔介绍4 特殊的处理(限时测试,异常测试)5 参数化配置(@Parameters)准备测试代码测试的⽅法(正确、错误⽅法、死循环、抛异常)LogicServicepackage com.logic;public class LogicService {public int add(int x ,int y){ //加法return x+y;}public int sub(int x ,int y){ //减法return x-y;}public int div(int x ,int y){ //除法return x/y;}public int div2(int x ,int y){ //除法做了异常判断try {int z = x/y;} catch (Exception e) {e.printStackTrace();}return x/y;}public void loop(int x ,int y){ //死循环for(;;)x=y;}public void unCompleted(int x ,int y){ //未完成的模块//还在开发中}}⼀ Myeclipse测试类的⽣成1 对需要测试的类点右键 NEW ⼀个Junit Test Case2 点击NEXT注意 1 选择NEW Junit 4 test2 source folder 是默认会填写上之前右键NEW的那个类,如果不是的话,请⾃⾏进⾏修改3 package 默认会填写当前的包名个⼈建议重新开个测试包-即在包后⾯加上.test 表⽰是单元测试⽤例专⽤包与源代码分离4 name 默认会在之前右键NEW的那个类的基础的后⾯加上Test 如果不是的话,建议⾃⾏进⾏修改,便于标⽰5 初始化的⽅法,我⼀般会勾上个setUp,这个请随意。
(2).mybatis单元测试(junit测试)⼀、Junit使⽤步骤:1、创建测试⽬录,(src、测试⽬录是test)2、在测试⽬录test中创建与src中相同的包名3、为需要测试的类创建测试类,例如:UsersMapper,测试类是UsersMapperTest4、为被测试类(UsersMapper)中的需要测试的⽅法在测试类型创建相应的⽅法。
⽐如,需要测试findById⽅法,那么则测试类中创建findById⽅法,测试⽅法的要求a、不能有返回值、不能有参数b、需要只⽤@Test注解对该⽅法进⾏注解。
5、在测试⽅法中,使⽤断⾔对结果进⾏判断,assert,判断⼀。
单元测试1. 在项⽬下创建⼀个⽬录test,之后将test右键Mark Directory as(标记⽬录为)->测试源根2. 在test下创建类,类的包名与被测试类的包名⼀致,在被测试类后⾯加上Test,例如:ersMapper与ersMapperTest。
在测试⽅法前@Test,导⼊junit测试路径,点击确定即可,之后maven后台下载。
3. Mybatis的核⼼对象:SqlSessionFactoryBuilder , SqlSessionFactory , SqlSession。
(SqlSessionFactoryBuilder创建⼯⼚,⼀般只⽤⼀次。
SqlSessionFactory是⼯⼚,⼯⼚长期存在。
SqlSession例如是⼯⼚造的汽车,有时间期限,即使⽤完⼯⼚依旧存在。
) SqlSeessionFactoryBuilder⽤过即丢,可⽤来创建多个SqlSessionFactory实例,并提供多个build⽅法的重载来构建SqlSessionFactory. SqlSession(⼀般瞬时、短链接,也可以长连接,⽤完关闭)build(InputStream inputStream,String environment,Properties properties)build(Reader reader,String environment,Properties properties)build(Configuration config)配置信息以三种形式提供给 SqlessionFactoryld 的build ⽅法:InputStream(字节流) Reader (字符流) Configuration (类)读取XML⽂件构造⽅式:String CONFIG_FILE = "mybatis-config.xml";InputStream resourceAsStream = Resources.getResourceAsStream(CONFIG_FILE);SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder().build(resourceAsStream);//⾮静态成员,实例成员,成员变量,通过构造⽅法初始化。
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 单元测试的使⽤(初级篇)推荐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 测试覆盖评测测试过程中已经执⾏的代码的多少。
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程序设计有所帮助。
第三章 JUnit单元测试实验1 开始使用JUnit【实验目的】1、学习使用JUnit4.X进行单元测试;2、掌握JUnit4.X编写测试代码的方法;3、应用JUnit进行单元测试,掌握最佳实践编写测试代码。
【实验环境】1、Windows环境,MyEclipse或Eclipse,JUnit4.x。
2、每个学生操作1台电脑。
【实验原理】JUnit是一个开源的Java编程语言的单元测试框架,最初由 Erich Gamma 和 Kent Beck 编写。
Junit测试是一种白盒测试工具。
JUnit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。
具有JUnit经验对于应用“测试驱动开发(TDD)”的程序开发模型是非常重要的。
JUnit本质上是一套框架,即开发者制定了一套条条框框,遵循这此条条框框要求编写测试代码,如继承某个类,实现某个接口,就可以用JUnit进行自动测试了。
由于JUnit相对独立于所编写的代码,可以测试代码的编写可以先于实现代码的编写,XP 中推崇的 test first design的实现有了现成的手段:用JUnit写测试代码,写实现代码,运行测试,测试失败,修改实现代码,再运行测试,直到测试成功。
以后对代码的修改和优化,运行测试成功,则修改成功。
Java 下的 team 开发,采用 cvs(版本控制) + ant(项目管理) + JUnit (集成测试) 的模式时,通过对ant的配置,可以很简单地实现测试自动化。
【实验内容】根据下面的实验步骤完成实验。
1、JUnit包下载。
(1) 从下载Junit,打开该链接,会有一个下载链接,下载Junit4.X.zip,保存在用户机的文件系统中。
(2) 解包Junit-4.X,得到如图3-1的解包文件。
图1 Junit解包文件文件/目录描述junit.jar JUnit框架结构、扩展和测试运行器的二进制发布src.jar JUnit的源代码,包括一个 Ant 的buildfile文件junit 是个目录,内有JUnit自带的用JUnit编写的测试示例程序javadoc JUnit完整的API文档doc 一些文档和文章,包括“Test Infected: Programmers Love Writing Tests”和其它一些资料,可以帮助我们入门。
《软件测试技术》上机指导书之(一)使用JUNIT4进行单元测试JUnit4概述 (2)在Eclipse中使用JUnit4进行单元测试(初级篇) (5)在Eclipse中使用JUnit4进行单元测试(中级篇) (14)在Eclipse中使用JUnit4进行单元测试(高级篇) (16)实验目的:单元测试。
实验学时:4(2学时学习,2学时检查)实验要求:掌握JUNIT的使用方法。
检查要求:按学号每5人一组,分组检查掌握情况。
(1)初始成绩:1人为优秀,2-3人良好,1-2人中等。
组内推荐。
(2)最差的那个同学演示答辩,其成绩决定组内其他同学的成绩的整体水平。
(3)组内同学的成绩跟随答辩同学的成绩上下浮动。
张金荣重庆理工大学计算机科学与工程学院2013年3月9日JUnit4概述JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写.先简单解释一下什么是Annotation,这个单词一般是翻译成元数据。
元数据是什么?元数据就是描述数据的数据。
也就是说,这个东西在Java里面可以用来和public、static等关键字一样来修饰类名、方法名、变量名。
修饰的作用描述这个数据是做什么用的,差不多和public描述这个数据是公有的一样。
想具体了解可以看Core Java2。
废话不多说了,直接进入正题。
我们先看一下在JUnit 3中我们是怎样写一个单元测试的。
比如下面一个类:public class AddOperation {public int add(int x,int y){return x+y;}}我们要测试add这个方法,我们写单元测试得这么写:import junit。
framework。
TestCase;import static org。
junit.Assert。
*;public class AddOperationTest extends TestCase{public void setUp() throws Exception {}public void tearDown() throws Exception {}public void testAdd() {System.out。
Java单元测试:JUnit和Mockito的使用指南引言:在软件开发过程中,单元测试是一个至关重要的环节。
通过对代码的逐个单元进行测试,可以确保代码的质量和稳定性。
在Java开发中,JUnit和Mockito是两个常用的工具,它们可以帮助开发者更轻松地进行单元测试。
本文将为您介绍JUnit和Mockito的使用指南,帮助您更好地掌握这两个工具的功能和用法。
一、JUnit简介JUnit是一个Java语言的单元测试框架,它提供了一系列的注解和断言方法,方便开发者编写和执行单元测试。
JUnit的核心思想是“测试驱动开发”(Test-Driven Development,TDD),即在编写代码之前先编写测试用例,通过不断迭代的方式来开发和完善代码。
1.1 JUnit的安装和配置要使用JUnit,首先需要将JUnit的相关库文件导入到项目中。
可以通过Maven或Gradle等构建工具来管理依赖,也可以手动下载并导入JUnit的jar包。
导入完成后,就可以在代码中使用JUnit的注解和断言方法。
1.2 编写测试用例在JUnit中,每个测试用例都是一个独立的方法。
可以使用@Test注解来标记测试方法,JUnit会自动执行被标记的方法,并判断测试结果是否符合预期。
例如:```@Testpublic void testAddition() {int result = Calculator.add(2, 3);assertEquals(5, result);}```上述代码中,我们使用@Test注解标记了一个测试方法,该方法调用了被测试的Calculator类的add方法,并使用断言方法assertEquals来判断结果是否等于预期值。
如果测试通过,JUnit会输出“OK”;如果测试失败,JUnit会输出错误信息。
1.3 JUnit的高级特性除了基本的注解和断言方法外,JUnit还提供了一些高级特性,如参数化测试、测试套件和测试运行器等。
实验1:JUnit单元测试基础董瑞志常熟理工学院软件工程系实验目的理解手工编写单元测试的基本方法;编写简单的基于JUnit的单元测试用例;深入掌握JUnit的核心类、JUnit生命周期。
课时安排8课时实验内容JUnit初步单元测试可以描述为“确保方法接收预期范围内的输入,并且对每个测试输入返回预期的结果。
”单元测试是独立的一个工作单元(一个工作单元是一项任务,它不依赖于其他任何任务的完成)。
在Java应用程序中,“独立的一个动作单元”常常指的是一个方法。
1.编写Calculator类及其手工测试类TestCalculatorManual图1:手工测试Calculator单元测试的一条准则是“若程序的某项功能没有经过测试,那么该功能基本等于不存在”。
这里的add方法是Calculator的核心功能之一,这里我们先手工编写测试类TestCalculatorManual。
2.TestCalculatorManual的设计优化也许你想为Calculator添加其他方法如subtract或multiply,就需要对TestCalculatorOne进行模块化的优化:图2:优化手工测试的测试脚本3.用JUnit进行单元测试(1)JUnit有很多功能可以简化测试用例的编写和运行,我们编写Test Case—TestCalculatorWithJUnit如下。
图3:使用JUnit设计测试脚本在Calculator类中添加subtract(), multiply(),divide()后,如何编写手工测试用例和基于JUnit 框架的测试用例应该如何编写?(2)使用默认的TestSuite, 显式调用Junit TestRunner图4:显式调用Junit TestRunner/** 调用由TestRunner自动创建的TestSuite对象* 默认的TestSuite对象将扫描测试类,找出所有以test开头的方法,* 为每一个testXXX方法都创建一个TestCase实例。
教你⽤IDEA配置JUnit并进⾏单元测试⽬录⼀、JUnit是什么?⼆、IDEA的JUnit配置三、⽣成JUnit4测试⽤例⼀、JUnit 是什么?JUnit 是⼀个 Java 语⾔的回归测试框架(regression testing framework),由 Kent Beck 和 Erich Gamma 建⽴。
Junit 测试也是程序员测试,即所谓的⽩盒测试,它需要程序员知道被测试的代码如何完成功能,以及完成什么样的功能。
⼆、IDEA 的 JUnit 配置(1)添加junit的依赖jar包 junit-4.12.jar、hamcrest-core-1.3.jarMaven项⽬pom配置:Maven项⽬pom配置:<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>org.hamcrest</groupId><artifactId>hamcrest-core</artifactId><version>1.3</version></dependency>(2)安装junit4插件(3) 选择默认使⽤Junit4(4) 配置输出路径修改 Output Path 为:${SOURCEPATH}/../../test/java/${PACKAGE}/${FILENAME}(5)修改测试⽤例模板。
模板中⽣成的 package 的包名需去掉 test。
三、⽣成 JUnit4 测试⽤例⽅法⼀:在待编写测试的 java 类源码块上按快捷键 Alt + Insert。